【问题标题】:Xamarin forms - Menu icon on iosXamarin 表单 - ios 上的菜单图标
【发布时间】:2019-01-31 15:30:05
【问题描述】:

我有这个MasterDetailPage

在 UWP 和 Android 上,菜单的左上角图标显示正确,但在 iOS 上显示标签“菜单”。

我在xcassets 中有一个图像“汉堡包”,我想使用它。

我怎样才能使它工作?

<?xml version="1.0" encoding="utf-8" ?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
            xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            xmlns:views="clr-namespace:Menu_TEST.Views"
            x:Class="Menu_TEST.Views.MainPage">

    <MasterDetailPage.Master>
        <views:MenuPage />
    </MasterDetailPage.Master>

    <MasterDetailPage.Detail>
        <NavigationPage>
            <NavigationPage.Icon>
                <OnPlatform x:TypeArguments="FileImageSource">
                    <On Platform="iOS" Value="Hamburger"/>
                </OnPlatform>
            </NavigationPage.Icon>
            <x:Arguments>
                <views:ItemsPage />
            </x:Arguments>
        </NavigationPage>
    </MasterDetailPage.Detail>
</MasterDetailPage>

【问题讨论】:

  • MasterDetailPage.Master 中使用Title="☰"

标签: ios xaml xamarin xcasset


【解决方案1】:

我在 xcasset 中有一个图像“汉堡包”,我想使用它。

如果想从xcassets获取图片,可以参考this discussion。但是在MasterDetailPage.Master这里可能不行。所以建议最好使用资源文件夹中的图片。

<MasterDetailPage.Master>
   <views:MenuPage />
</MasterDetailPage.Master>

从您的代码中,MenuPage 设置为 MasterDetailPage.Master 属性。如果要将图标设置在左上角,需要在MenuPage.xaml中设置如下。

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="AppMasterDetail.Views.MenuPage"
             Title="Menu"
             Icon="hamburger.png"> //Here set icon ,image from 'Resources' folder

    <StackLayout VerticalOptions="FillAndExpand">
        <ListView x:Name="ListViewMenu"
                    HasUnevenRows="True">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <Grid Padding="10">
                            <Label Text="{Binding Title}" FontSize="20"/>
                        </Grid>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>
</ContentPage>

如果项目中没有这个hamburger.png,你也可以像CGPA6.4说的那样设置标题。

<?xml version="1.0" encoding="utf-8" ?>
    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                 x:Class="AppMasterDetail.Views.MenuPage"
                 Title="☰">  //Here change 'Menu' to '☰'
        ...

 </ContentPage>

这里是a official documentsample,可以参考。

【讨论】:

    猜你喜欢
    • 2017-09-05
    • 2018-10-04
    • 1970-01-01
    • 2020-06-29
    • 2017-08-14
    • 2015-12-04
    • 2020-08-23
    • 1970-01-01
    • 2018-08-16
    相关资源
    最近更新 更多