确定Silverlight中UIElement的大小

时间:2011-02-17 12:11:16

标签: silverlight size width actualwidth

我有一个StackPanel,包含许多UIElements(使用XAML文件中的模板构建),我希望显示它。

要正确显示它,我需要知道它的大小。

最初Width/Height/ActualWidth/ActualHeight/DesiredSize全部为0或NaN。如果我调用panel.Measure(new Size(double.PositiveInfinity,double.PositiveInfinity)),则计算其ActualWidth / ActualHeight / DesiredSize(宽度/高度保持为NaN)。到目前为止,非常好。

但是,ActualWidth / DesiredSize.Width设置为XAML模板中指定的MinWidth值,即使在绘制时,stackpanel也比此宽。

为什么渲染的大小与ActualWidth / ActualHeight属性不匹配?

如何确定渲染尺寸,以便我可以正确定位面板?

(该面板用于弹出工具提示,需要出现在鼠标指针附近,但如果工具提示会溢出其允许区域,则需要调整其位置。)

1 个答案:

答案 0 :(得分:1)

您可以收听控件的SizeChanged事件以监控其大小更改。在呈现控件之前,所有大小属性​​都将为0/NaN