我在获取maui中元素的实际宽度和高度时遇到了问题。在WPF中,我有ActualWidth和ActualHeight,它们给予了元素加载后呈现的大小。但在毛伊岛总是NaN。我有一个简单的网格:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="35*"/>
<RowDefinition Height="30*"/>
<RowDefinition Height="35*"/>
</Grid.RowDefinitions>
<Border Grid.Row="0" VerticalOptions="Fill" HorizontalOptions="Fill"/>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20*"/>
<ColumnDefinition Width="60*"/>
<ColumnDefinition Width="20*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" VerticalOptions="Fill" HorizontalOptions="Fill"/>
<Border x:Name="CenterBorder" Grid.Column="1" VerticalOptions="Fill" HorizontalOptions="Fill"/>
<Border Grid.Column="2" VerticalOptions="Fill" HorizontalOptions="Fill" />
</Grid>
<Border Grid.Row="2" VerticalOptions="Fill" HorizontalOptions="Fill"/>
</Grid>
现在,我只想得到“CenterBorder”的渲染宽度和高度。但价值观从未被设定。我认为这与布局是完全动态的有关,但我不想使用固定的大小。
2条答案
按热度按时间uttx8gqw1#
这是因为您尝试在应用程序布局视图之前获取其高度和宽度。您可以尝试在页面的
LayoutChildren
方法中获取它。vlf7wbxs2#
你需要从它的基类中读取宽度;
View
或ViewElemement
。确保页面首先完全呈现。
更新
经过进一步的调查,我发现这是关于渲染的。当页面被完全呈现时,宽度就在那里。