我有这段XAML代码:
<Window x:Class="SizingTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Label x:Name="theLabel" Width="Auto">A very large label with a lot of text</Label>
</Grid>
</Window>
在后面的代码中,我想要获得标签的实际宽度,我想
theLabel.ActualWidth
可以解决问题,但在尝试此代码之后:
public Window1()
{
InitializeComponent();
double width = theLabel.ActualWidth;
}
width的值为0,我还检查了Label.Width,它返回NaN,theLabel.DesiredSize.Width,它也返回0.我可以用什么来查找标签的实际宽度?
谢谢。
答案 0 :(得分:12)
ActualWidth
未设置。
要获取组件ActualWidth
,您需要等待布局传递完成。收听Loaded事件,因为直到第一次布局通过后才会调用它。