Xamarin.forms 在prism中使用masterdetailview实现UWP弹出式splitview?

Xamarin.forms 在prism中使用masterdetailview实现UWP弹出式splitview?,xamarin.forms,uwp,prism,master-detail,splitview,Xamarin.forms,Uwp,Prism,Master Detail,Splitview,我完全是xamarin的傻瓜:) 所以我想知道是否有人能给我指出正确的资源 简而言之,我想使用Xamarin MasterDetailPage在prism中实现类似的功能 使用主细节示例,汉堡包菜单不会充当弹出菜单 <MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"

我完全是xamarin的傻瓜:)

所以我想知道是否有人能给我指出正确的资源

简而言之,我想使用Xamarin MasterDetailPage在prism中实现类似的功能

使用主细节示例,汉堡包菜单不会充当弹出菜单

<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                  xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
              prism:ViewModelLocator.AutowireViewModel="True"
             x:Class="HelloWorld.Views.MyMasterDetail">

  <MasterDetailPage.Master>
    <ContentPage Title="Default">
      <StackLayout>
        <Button Text="ViewA" Command="{Binding NavigateCommand}" CommandParameter="MyNavigationPage/ViewA?id=A" />
        <Button Text="ViewB" Command="{Binding NavigateCommand}" CommandParameter="MyNavigationPage/ViewB?id=B" />
        <Button Text="ViewC" Command="{Binding NavigateCommand}" CommandParameter="MyNavigationPage/ViewC?id=C" />
      </StackLayout>
    </ContentPage>
  </MasterDetailPage.Master>

</MasterDetailPage>

现在,虽然有足够的空间,但它显示出

(作为示例,我根本不使用SplitViewMenu)

我需要图标/一些小的文字来显示最初和点击汉堡,它应该扩大(你知道就像第一个链接/groove音乐应用程序的行为)。

小费

现在,虽然有足够的空间,但它显示出

根据我的经验,如果您为SimpleNavMenuItem分配了Symbol属性,可能的原因是您没有导入
Themes
文件夹下的主题文件
Generic.xaml

此文件包括模板、自定义控件的样式。例如,对于NavMenuItem的模板,需要在此处正确指定FontIcon的Glyph属性:

<DataTemplate x:Key="NavMenuItemTemplate">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="48" />
                <ColumnDefinition />
            </Grid.ColumnDefinitions>
            <FontIcon FontSize="16" Glyph="{Binding Path=SymbolAsChar}" VerticalAlignment="Center"
                      HorizontalAlignment="Center" ToolTipService.ToolTip="{Binding Path=Label}" />
            <TextBlock Grid.Column="1" Text="{Binding Path=Label}" VerticalAlignment="Center" />
        </Grid>
    </DataTemplate>
如果你仍然可以让它工作,请分享一个演示:)

现在,虽然有足够的空间,但它显示出

根据我的经验,如果您为SimpleNavMenuItem分配了Symbol属性,可能的原因是您没有导入
Themes
文件夹下的主题文件
Generic.xaml

此文件包括模板、自定义控件的样式。例如,对于NavMenuItem的模板,需要在此处正确指定FontIcon的Glyph属性:

<DataTemplate x:Key="NavMenuItemTemplate">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="48" />
                <ColumnDefinition />
            </Grid.ColumnDefinitions>
            <FontIcon FontSize="16" Glyph="{Binding Path=SymbolAsChar}" VerticalAlignment="Center"
                      HorizontalAlignment="Center" ToolTipService.ToolTip="{Binding Path=Label}" />
            <TextBlock Grid.Column="1" Text="{Binding Path=Label}" VerticalAlignment="Center" />
        </Grid>
    </DataTemplate>

如果你仍然可以让它工作,请分享一个演示:)

我自己也一直在寻找类似的东西,因为当我在Windows 10移动设备上运行时,我无法隐藏MasterDetailPage母版页中显示的导航栏(不过我可以为PC隐藏)。所以基本上,我正在考虑最终构建自己版本的MasterDetailPage

由于我还没有建造它,我不能确切地告诉你如何实现你的要求,但我知道它需要你:

  • 为MasterDetailView编写自己的自定义渲染器,或者
  • 编写新控件及其渲染器

  • 在这两种情况下,渲染器都将涉及创建和操作新的SplitView(这是SplitViewMenu示例正在扩展的本机UWP控件)。有一个关于创建实际UWP控件的教程。如果您还没有了解Xamarin的渲染器,那么它们是Xamarin.Forms控件和给定平台的本机控件之间的“翻译器”和“解释器”。我怀疑Xamarin最终会为UWP重写他们的MastDetailPage渲染器,以使用SplitView作为基础,但谁知道什么时候会这样。Xamarin在GitHub上还有一个针对Xamarin.Forms(以及其他)的开源SDK,因此您可以研究UWP的MasterDetailPageRenderer。

    我自己也在寻找类似的东西,因为在Windows 10移动设备上运行MasterDetailPage时,我无法隐藏MasterDetailPage主页中显示的导航栏(不过我可以为个人电脑隐藏)。所以基本上,我正在考虑最终构建自己版本的MasterDetailPage

    由于我还没有建造它,我不能确切地告诉你如何实现你的要求,但我知道它需要你:

  • 为MasterDetailView编写自己的自定义渲染器,或者
  • 编写新控件及其渲染器

  • 在这两种情况下,渲染器都将涉及创建和操作新的SplitView(这是SplitViewMenu示例扩展的本机UWP控件)。有一个创建实际UWP控件的教程。如果您尚未了解Xamarin的渲染器,则它们是“翻译器”和“解释器”在Xamarin.Forms控件和给定平台的本机控件之间。我怀疑Xamarin最终会为UWP重写其MastDetailPage呈现程序,以使用SplitView作为基础,但谁知道什么时候会这样。Xamarin还有一个用于Xamarin.Forms(以及其他)的开源SDK在GitHub上,您可以研究UWP的MasterDetailPageRenderer。

    抱歉,看起来我不清楚?我没有使用SplitViewMenu,我正在尝试使用prism和提供的示例,我包含SplitViewMenu的唯一原因是为了演示,我将编辑问题以使其更清楚。您能否提供一个如何使用自定义M的示例asterDetailPageRenderer使用本机SplitView的示例?如果不是,希望Xamarin在下一个版本中释放此控件。抱歉,看起来我不清楚?我没有使用SplitViewMenu,我正在尝试使用prism和提供的示例,我包含SplitViewMenu的唯一原因是为了演示,我将编辑问题以使其更简单重新清除。请提供一个如何使用使用本机SplitView的自定义MasterDetailPageRenderer示例的示例。如果没有,希望Xamarin在下一版本中发布此控件。