Xamarin.Forms 为不同的平台设置不同的列定义(android、ios)

Xamarin.Forms Set different Colum Definitions for different platforms (android, ios)

我有这个网格:

        <Grid >
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="1.07*" />
                <ColumnDefinition Width="1.2*" />
                <ColumnDefinition Width="0.05*" />
            </Grid.ColumnDefinitions>
</Grid>

此网格是 android 和 ios 中标题视图的一部分。我需要将图标居中放置在中间列中,但是由于 ios 和 android 以不同方式处理标题视图,因此中间的图标在 ios 上确实略微偏左,而它位于以 android 为中心。我需要为每个平台设置不同的列宽。

这可行吗?

谢谢!

您可以使用以下代码为不同平台(android、ios)实现不同的列定义。

    <Grid >
            <Grid.ColumnDefinitions>
                <ColumnDefinition  >
                    <ColumnDefinition.Width>
                        <OnPlatform x:TypeArguments="GridLength">
                            <On Platform="iOS" Value="1.2*"></On>
                            <On Platform="Android" Value="2.07*"></On>
                        </OnPlatform>
                    </ColumnDefinition.Width>
                    
                </ColumnDefinition>
                <ColumnDefinition Width="1.2*" />
                <ColumnDefinition Width="0.05*" />
            </Grid.ColumnDefinitions>

            <Label Grid.Row="0" Grid.Column="0" Text="By default, a Grid contains one row and one column." />
        </Grid>