Xamarin.forms 母版详情页“;“拆分”;超宽带
我正在使用Xamarin.Forms(v.3.4.0.1008975)在Windows10(1809)上构建一个UWP应用程序 我想创建一个具有拆分行为的MasterDetailPage(一个固定的导航菜单,总是在左侧可见,内容页显示在右侧)。这是有案可查的 使用可用的示例代码,我已将MasterBehavior=“Split”添加到MasterDetailPageNavigation项目中的XAML/MainPage.XAML文件中:Xamarin.forms 母版详情页“;“拆分”;超宽带,xamarin.forms,uwp,Xamarin.forms,Uwp,我正在使用Xamarin.Forms(v.3.4.0.1008975)在Windows10(1809)上构建一个UWP应用程序 我想创建一个具有拆分行为的MasterDetailPage(一个固定的导航菜单,总是在左侧可见,内容页显示在右侧)。这是有案可查的 使用可用的示例代码,我已将MasterBehavior=“Split”添加到MasterDetailPageNavigation项目中的XAML/MainPage.XAML文件中: <MasterDetailPage xmlns="h
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:MasterDetailPageNavigation;assembly=MasterDetailPageNavigation"
x:Class="MasterDetailPageNavigation.MainPage"
MasterBehavior="Split">
我希望在左侧看到一个固定的导航菜单,在右侧显示一个内容页。但是,生成的UWP应用程序继续显示“Popover”行为(菜单在内容页上滑入滑出)
如何获得带有固定(不移动)菜单的MasterDetailPage?请检查您提供的示例中的
MainPage
代码隐藏。在主页
构造函数中设置了主行为
。并且在初始化Xaml之后将调用它。因此,将涵盖拆分
行为
public partial class MainPage : MasterDetailPage
{
public MainPage()
{
InitializeComponent();
masterPage.listView.ItemSelected += OnItemSelected;
if (Device.RuntimePlatform == Device.UWP)
{
MasterBehavior = MasterBehavior.Popover;
}
}
void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
{
var item = e.SelectedItem as MasterPageItem;
if (item != null)
{
Detail = new NavigationPage((Page)Activator.CreateInstance(item.TargetType));
masterPage.listView.SelectedItem = null;
IsPresented = false;
}
}
}
如果要使用Split
行为,可以修改以下行。并从xaml中删除MasterBehavior=“Popover”
if (Device.RuntimePlatform == Device.UWP)
{
MasterBehavior = MasterBehavior.Split;
}
请检查您提供的示例中的
MainPage
代码隐藏。在主页
构造函数中设置了主行为
。并且在初始化Xaml之后将调用它。因此,将涵盖拆分
行为
public partial class MainPage : MasterDetailPage
{
public MainPage()
{
InitializeComponent();
masterPage.listView.ItemSelected += OnItemSelected;
if (Device.RuntimePlatform == Device.UWP)
{
MasterBehavior = MasterBehavior.Popover;
}
}
void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
{
var item = e.SelectedItem as MasterPageItem;
if (item != null)
{
Detail = new NavigationPage((Page)Activator.CreateInstance(item.TargetType));
masterPage.listView.SelectedItem = null;
IsPresented = false;
}
}
}
如果要使用Split
行为,可以修改以下行。并从xaml中删除MasterBehavior=“Popover”
if (Device.RuntimePlatform == Device.UWP)
{
MasterBehavior = MasterBehavior.Split;
}
您使用的是什么版本的XF?使用XF版本3.4.0.1008975更新的问题您的问题已解决,对吗?是的,已解决。我忽略了代码隐藏中的一行。您使用的是什么版本的XF?使用XF版本3.4.0.1008975更新的问题您的问题已解决,对吗?是的,已解决。我忽略了后面代码中的那行。