如何增加外壳(Xamarin形式)中弹出项目的高度?

时间:2019-07-16 14:46:09

标签: shell xamarin-forms-4

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

2 个答案:

答案 0 :(得分:0)

这是通过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>

答案 1 :(得分:0)

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

我仔细看了一下,并使用Android手机和iphone做了更多测试。

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

https://github.com/wzdr/DemoMenuHeight

遗憾的是,我注意到iPhone上的行为有所不同,实际上,在iOS上设置高度似乎根本不起作用。在Android上也可以。

下面的Android和iPhone屏幕快照。 Android Flyout

iphone screenshot, same xamarin forms shell flyout