将RelativePanel用于UWP App的有效方法

时间:2016-04-22 09:31:54

标签: c# windows xaml win-universal-app

我正在创建一个UWP应用程序,在我的应用程序中,我想要一个像默认邮件应用程序的结构,其中有一个Listview,其中包含所有邮件的列表,当用户点击它在其右侧打开的邮件时。

我读到了关于RelativePanel并尝试在我的应用程序中使用它,它现在运行良好,下面是我正在使用的xaml:

   <RelativePanel Grid.Row="1">

        <Frame x:Name="listFrame" 
               Width="600"
               Height="500"/>

        <Frame x:Name="contentFrame"
               RelativePanel.RightOf="listFrame"
               Width="600"
               Height="500" />


    </RelativePanel>

对于平板电脑/ PC,它运行良好,当我在移动视图中打开它时,它通过将contentFrame置于底部自动进行调整,但我担心的是我应该将它用于移动视图吗?因为保留contentFrame是没有意义的,因为用户不应该在移动视图中查看内容,因为我应该点击任何项目,而不是只有内容视图可见,listview将崩溃,类似于Mail App。

我不知道应该采用哪种方式,我是否需要为PC和移动设备创建不同的用户界面,或者我可以在SDK中使用哪些内容?

我是UWP的新手,所以我不知道我可以选择多少选项。

2 个答案:

答案 0 :(得分:1)

有多种方法可以处理多个设备的多视图。

  • 为每个设备系列创建差异视图(XAML文件)。当xaml在设备系列之间发生显着变化时,请使用此功能。

  • 使用自适应触发器更改可见性或重新流动您的XAML,将其与x:DeferLoadStrategy="Lazy"一起使用以获得更好的性能,因为在您更改触发器的可见性之前,元素不会被初始化

    < / LI>
  • 检查后面的代码中的设备系列并做出相应的反应

答案 1 :(得分:0)

您正在寻找的是“Master-Detail”。

在windows-universal-sample git repo中有一个样本 - &gt; Master/Detail sample

下载示例,运行它并查看代码。我认为这是一个很好的起点。