Problem solved, there was a function in the code-behind that resized the control the wrong way :
public void SetMainCanvasWidth(double size)
{
Width = Math.Max(2, size); // that line was evil. removed it and it runs
MainCanvas.Width = Math.Max(2, size);
}
Thank you for your help.