我有这个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>
最佳答案
我在xcassets中有一个“汉堡包”图像,我想使用它。
如果要从xcassets
获取图像,可以参考this discussion。但是,这在MasterDetailPage.Master
中可能无法正常工作。因此建议最好使用Resources文件夹中的图像。
<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和sample,可以参考。
关于ios - Xamarin表单-iOS上的菜单图标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54438946/