【问题标题】:Dimension of a Border in a Canvas画布中边框的尺寸
【发布时间】:2016-12-24 14:04:10
【问题描述】:

我愿意: myCanvas.Children.Add(laCase);

laCase 是一个边界,里面有东西。就在我想拥有laCase的确切中心之后。

但是 ActualWidthActualHeight 等于 0

WidthHeightNaN.

我试图弄乱 myCanvas.Children 没有任何成功。

是否有冲洗或做些什么来实现 myCanvas 并选择我正在寻找的尺寸?

【问题讨论】:

  • Canvas 从不设置其子元素的大小。使用其他容器,例如一个网格。
  • la case 是一个边框。我尝试使用网格没有任何变化。
  • 我的意思是使用网格而不是画布。如果将 Border 放入 Canvas 而不设置其大小,则其 ActualWidth 和 ActualHeight 将为零,因为 Canvas 不会调整其子元素的大小。

标签: c# wpf canvas shapes


【解决方案1】:

找到答案了。

我发现:Canvas.Arrange(Rect);

【讨论】:

  • UIElement.Arrange 是一种在需要更新控件以调整其自身或其子级的大小时由 WPF 调用的方法。如果您曾经手动调用它,那么您要么在做一些高级的事情并且知道自己在做什么,或者(更有可能)您不知道自己在做什么并且错误地使用它。即使您确实需要手动调用它,您几乎总是会使用UIElement.InvalidateMeasureUIElement.InvalidateVisual 来间接调用它。
  • 我愿意:myCanvas.Children.Add(laCase); laCase.InvalidateMeasure();双倍宽度 = laCase.ActualWidth;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多