Xamarin 表单 - ios 上的菜单图标
Xamarin forms - Menu icon on ios
我有这个MasterDetailPage
。
在 UWP 和 Android 上,菜单的左上角图标显示正确,但在 iOS 上出现标签 "Menu"。
我在 xcassets
中有一个图像 "Hamburger",我想使用它。
我怎样才能让它工作?
<?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>
I have an image "Hamburger" inside the xcassets, and I would like to use it.
如果想从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 document with sample,你可以参考。
我有这个MasterDetailPage
。
在 UWP 和 Android 上,菜单的左上角图标显示正确,但在 iOS 上出现标签 "Menu"。
我在 xcassets
中有一个图像 "Hamburger",我想使用它。
我怎样才能让它工作?
<?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>
I have an image "Hamburger" inside the xcassets, and I would like to use it.
如果想从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 document with sample,你可以参考。