1

我正在尝试更改 Xamrian Froms 中 menuItem 的默认高度,但我无法更改它。

4

2 回答 2

1

听说我的解决方案对您不起作用,我感到很惊讶。

我仔细观察并使用我的 Android 手机和我的 iPhone 进行了更多测试。

如果您愿意,请查看我为此测试创建的演示应用程序源代码:

https://github.com/wzdr/DemoMenuHeight

可悲的是,我注意到 iphone 上的行为有所不同,实际上在 iOS 上设置高度似乎根本不起作用。不过在安卓上还是不错的。

安卓和iphone截图如下。 安卓飞出

iphone 屏幕截图,相同的 xamarin 窗体外壳弹出

于 2019-07-27T10:09:17.613 回答
1

这是通过 DataTemplate 完成的,即

<!-- Template each FlyoutItem -->
<Shell.ItemTemplate>
    <DataTemplate>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="0.2*" />
                <ColumnDefinition Width="0.8*" />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
                <RowDefinition Height="3*"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Image Grid.Row="1" Grid.Column="0" Source="{Binding Icon}"
                   Margin="5"/>
            <Label Grid.Row="1" Grid.Column="1"
                   Text="{Binding Title}" TextColor="SkyBlue"
                   FontAttributes="Italic"
                   VerticalTextAlignment="Center" /> 
        </Grid>
    </DataTemplate>
</Shell.ItemTemplate>

<!-- Template each MenuItem -->
<Shell.MenuItemTemplate>
    <DataTemplate>
        <Grid HeightRequest="80">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="0.2*" />
                <ColumnDefinition Width="0.8*" />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="2*"/>
                <RowDefinition Height="3*"/>
            </Grid.RowDefinitions>
            <Image Grid.Row="1" Grid.Column="0" Source="{Binding Icon}"
                   Margin="5"/>
            <Label Grid.Row="1" Grid.Column="1"
                   Text="{Binding Text}"
                   FontAttributes="Italic"
                   VerticalTextAlignment="Center" /> 
        </Grid>
    </DataTemplate>
</Shell.MenuItemTemplate>
于 2019-07-23T04:05:49.267 回答