我拼命尝试更改Xamarin Forms应用程序的图标颜色。我认为这个汉堡菜单是文字,但现在我似乎无法改变它。这是一个图像吗?我找到了slideout.png图片,但是没有在应用中显示任何修改。它从哪里拉这个汉堡包菜单图标? 更改导航页面上的菜单栏图标
页:
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class LandingPage : MasterDetailPage
{
public LandingPage()
{
InitializeComponent();
MasterPage.ListView.ItemSelected += ListView_ItemSelected;
}
public void ListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
var item = e.SelectedItem as LandingPageMenuItem;
if (item == null)
return;
var page = (Page)Activator.CreateInstance(item.TargetType);
page.Title = item.Title;
Detail = new NavigationPage(page);
MasterPage.ListView.SelectedItem = null;
IsPresented = false;
}
}
<?xml version="1.0" encoding="utf-8" ?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Test.LandingPage" xmlns:pages="clr-namespace:Test">
<MasterDetailPage.Master>
<pages:LandingPageMaster x:Name="MasterPage" />
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
<x:Arguments>
<pages:LandingPageDetail />
</x:Arguments>
</NavigationPage>
</MasterDetailPage.Detail>
</MasterDetailPage>
站长:
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class LandingPageMaster : ContentPage
{
public LandingPageMasterViewModel Vm { get; private set; }
public ListView ListView => ListViewMenuItems;
public LandingPageMaster()
{
InitializeComponent();
Vm = new LandingPageMasterViewModel();
BindingContext = Vm;
}
protected override void OnAppearing()
{
ListViewMenuItems.SelectedItem = Vm.MenuItems[0];
}
public class LandingPageMasterViewModel : INotifyPropertyChanged
{
private ObservableCollection<LandingPageMenuItem> _menuItems;
public ObservableCollection<LandingPageMenuItem> MenuItems
{
get
{
return _menuItems;
}
set
{
_menuItems = value;
OnPropertyChanged();
}
}
public LandingPageMasterViewModel()
{
ObservableCollection<LandingPageMenuItem> items = new ObservableCollection<LandingPageMenuItem>();
items.Add(new LandingPageMenuItem { Title = "OCR" });
MenuItems = items;
}
public event PropertyChangedEventHandler PropertyChanged;
void OnPropertyChanged([CallerMemberName]string propertyName = "") => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
<?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="Test.LandingPageMaster" Title="">
<StackLayout>
<ListView x:Name="ListViewMenuItems" SeparatorVisibility="None" HasUnevenRows="True" ItemsSource="{Binding MenuItems}">
<ListView.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<Label Grid.Column = "0" Grid.Row="0" Text=" " />
</Grid>
</ListView.Header>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Padding="15,10" HorizontalOptions="FillAndExpand">
<Label VerticalOptions="FillAndExpand" VerticalTextAlignment="Center" Text="{Binding Title}" FontSize="Medium" />
<Label VerticalOptions="FillAndExpand" VerticalTextAlignment="Center" Text="{Binding Subtitle}" FontSize="Small" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage>
详情:
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class LandingPageDetail : ContentPage
{
public LandingPageDetail()
{
InitializeComponent();
}
}
<?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="Test.LandingPageDetail" Title="Detail">
<StackLayout Padding="10">
<Label Text="This is a detail page" />
</StackLayout>
</ContentPage>
谢谢您的回答。你能解释我将如何完成使用Android styles.xml改变颜色吗? – Kyle