2016-12-24 205 views
-1

我这样做: myCanvas.Children.Add(laCase);画布中边框的尺寸

laCase是一个内部有东西的边框。就在我想拥有laCase的确切中心之后。

但是ActualWidth的的ActualHeight等于

虽然宽度高度的NaN

我试图混淆myCanvas.Children没有任何成功。

是否有刷新或要做的事情来实现myCanvas和选择我正在寻找的维度?

+0

画布从不设置其子元素的大小。使用其他容器,例如一个网格。 – Clemens

+0

la case是一个边框。我尝试与电网没有任何改变。 – Xavier123456789

+0

我的意思是使用网格而不是画布。如果将Border放入Canvas而不设置其大小,则其ActualWidth和ActualHeight将为零,因为Canvas不会调整其子元素的大小。 – Clemens

回答

-1

找到了答案。

我发现:Canvas.Arrange(Rect);

+0

'UIElement.Arrange'是WPF在需要更新控件以调整其本身或其子级时调用的方法。如果你曾经手动调用它,你要么做一些先进的东西,并且知道你在做什么,或者(更可能)你不知道你在做什么并且错误地使用它。即使您确实需要手动调用它,您几乎总是通过使用“UIElement.InvalidateMeasure”或“UIElement.InvalidateVisual”来间接调用它。 – Abion47

+0

我在做: myCanvas.Children.Add(laCase); laCase.InvalidateMeasure(); double width = laCase.ActualWidth; – Xavier123456789