我试图以编程方式获取网格的宽度和高度,在UserControl中。以编程方式获取当前列宽和高度?
这里是我的XAML
格:
<Grid Name="BallGrid" Background="DarkBlue" Height="auto" Width="auto">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
</Grid>
但是这两种:
double width = BallGrid.ColumnDefinitions[0].ActualWidth;
double height = BallGrid.RowDefinitions[0].ActualHeight;
返回0,
这些
double width = BallGrid.ColumnDefinitions[0].Width.Value;
double height = BallGrid.RowDefinitions[0].Height.Value;
收益都返回1。
我想知道实际宽度,最好以与边距尺寸相同的单位。我如何以编程方式获取这些值?
在ProgessChanged方法中查询列值,该方法每50毫秒由BackgroundWorker调用一次,这可能会有所不同。
是否在控件提交后查询这些属性? – Dennis
他们从ProgressChanged方法调用,我不知道它是否已被渲染,可能不是由外观的东西... – ProgrammerAtWork