私の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