Xamarin MasterDetailPage:UWP/Android上的不同行为
在Xamarin.Forms中使用MasterDetailPage时,其行为与Android中的aspected相同。就像一个普通的导航抽屉。请注意滑入机构的正确行为和汉堡按钮的正确位置。菜单上的按钮也很好用 UWP应用程序看起来像这样。请注意,没有汉堡按钮: 点击菜单按钮后,菜单消失,无法取回: 以下是一些代码摘录: App.xaml.csXamarin MasterDetailPage:UWP/Android上的不同行为,xamarin,xamarin.forms,Xamarin,Xamarin.forms,在Xamarin.Forms中使用MasterDetailPage时,其行为与Android中的aspected相同。就像一个普通的导航抽屉。请注意滑入机构的正确行为和汉堡按钮的正确位置。菜单上的按钮也很好用 UWP应用程序看起来像这样。请注意,没有汉堡按钮: 点击菜单按钮后,菜单消失,无法取回: 以下是一些代码摘录: App.xaml.cs public partial class App : Application { public App() { Ma
public partial class App : Application
{
public App()
{
MainPage = new NavigationPage(new MenuPage());
}
...
MenuPage.xaml
<?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="WordDeck.MenuPage"
xmlns:local="clr-namespace:WordDeck;assembly=WordDeck"
Title="WordDeck."
MasterBehavior="Default">
<MasterDetailPage.Master>
<ContentPage Title="Menu">
<StackLayout Orientation="Vertical">
<Button Text="Neues Spiel"
Clicked="MainPage_Clicked"></Button>
<Button Text="Deck Verwaltung"
Clicked="DeckManager_Clicked"></Button>
</StackLayout>
</ContentPage>
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<local:MainPage></local:MainPage>
</MasterDetailPage.Detail>
</MasterDetailPage>
MainPage和DeckManagerPage几乎为空,类型为ContentPage
为什么UWP上没有菜单按钮?这是因为您将UWP应用程序作为桌面应用程序运行,而不是在手机上运行。如果你在手机或模拟器上运行应用程序,你会看到Android上的菜单
如果您想在作为桌面应用程序运行时使用汉堡包行为,请在MasterDetailPage上设置
MasterBehavior=MasterBehavior.Popover
,这是因为您将UWP应用程序作为桌面应用程序运行,而不是在手机上运行。如果你在手机或模拟器上运行应用程序,你会看到Android上的菜单
如果要在作为桌面应用程序运行时使用汉堡包行为,请在MasterDetailPage上设置
MasterBehavior=MasterBehavior.Popover
,主要问题是桌面上显示的信息隐藏了抽屉。
处理这个问题的一种方法是不要隐藏在桌面或平板电脑上
例如
// Called from each Clicked Event
private void SetPresentedVisability()
{
switch (Device.Idiom)
{
case TargetIdiom.Phone:
IsPresented = false;
break;
case TargetIdiom.Desktop:
case TargetIdiom.Tablet:
case TargetIdiom.Unsupported:
IsPresented = true;
break;
}
}
或者,您可以忽略任何非手机显示的设置
IsPresented = (Device.Idiom == TargetIdiom.Phone) ? false : true;
主要问题是桌面上的IsPresented隐藏了抽屉。 处理这个问题的一种方法是不要隐藏在桌面或平板电脑上 例如
// Called from each Clicked Event
private void SetPresentedVisability()
{
switch (Device.Idiom)
{
case TargetIdiom.Phone:
IsPresented = false;
break;
case TargetIdiom.Desktop:
case TargetIdiom.Tablet:
case TargetIdiom.Unsupported:
IsPresented = true;
break;
}
}
或者,您可以忽略任何非手机显示的设置
IsPresented = (Device.Idiom == TargetIdiom.Phone) ? false : true;
也许你需要更新你的Xamarin.Forms nuget包?我只需要上面的大部分代码,我有一个汉堡包菜单,我可以折叠并打开菜单。我正在运行Windows10UWP作为测试。它似乎工作正常。也许你需要更新你的Xamarin.Forms nuget包?我只需要上面的大部分代码,我有一个汉堡包菜单,我可以折叠并打开菜单。我正在运行Windows10UWP作为测试。它似乎工作得很好。