我有这个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>
答案 0 :(得分:2)
我在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,可以参考。