在Silverlight中确定UIElement的大小

我有一个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属性不匹配? 如何确定渲染的大小,以便我可以正确定位我的面板? (该面板用于弹出工具提示,需要出现在鼠标指针附近,但如果工具提示溢出其允许区域,则需要调整其位置)。     
已邀请:
您可以收听控件的
SizeChanged
事件来监控其大小变化。在呈现控件之前,所有大小属性​​都将为
0/NaN
。     

要回复问题请先登录注册