屏幕宽度返回负数

A. *_*ijk 1 c# xamarin.ios xamarin.android xamarin xamarin.forms

我想从我的页面获取网格宽度,所以我尝试了这个:

public MemeBuilder()
{
    InitializeComponent();

    ColumnWidth = (MainGrid.Width - (8 * 5)) / 7;
    ....
Run Code Online (Sandbox Code Playgroud)

MainGrid.Width返回-1。

这是网格的xaml:

<Grid x:Name="MainGrid">
    <Grid.RowDefinitions>
        <RowDefinition Height="50" />
        <RowDefinition Height="*" />
        <RowDefinition Height="50" />
    </Grid.RowDefinitions>
    .....
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

msh*_*hwf 6

您可以订阅该SizeChanged事件并从那里获得Width

private void MainGrid_SizeChanged(object sender, EventArgs e)
{
    var grid = (Grid)sender;
    var width = grid.Width;
}
Run Code Online (Sandbox Code Playgroud)