如何在W10上的不同屏幕上正确调整应用程序UI

Ser*_*694 5 c# xaml windows-runtime win-universal-app windows-10

我即将开始将我的WP8.1应用程序移植到W10,看起来我必须将它变为通用Windows应用程序.现在,我对后端代码很好,因为我将能够重用90%的类(模型,ViewModel和我的大多数辅助类,扩展方法和转换器).

问题出在UI上:我明白我必须为不同的屏幕和方面口粮设计应用程序,我不知道如何在代码中实际实现它.我的意思是,对于UI缩放,我知道我可以使用VisualStateManager和AdaptiveTriggers手动设置我想要适应任何屏幕分辨率的UI元素的属性,或者我可以使用一些转换器,这很好.

我的意思是:让整个UI适应不同分辨率的最佳方法是什么?

这是一个例子:

Windows 10上的人物应用程序

如您所见:整个导航模式在不同的屏幕上沿着UI发生变化.在手机上,我们有覆盖整个用户界面的联系页面,而在平板电脑和个人电脑上,我们的联系页面只是用户界面的一小部分,而枢轴页面则移动到右侧的另一个面板中.此外,许多UI元素都完全重新排列.当然,一些视图级后端代码也会发生变化.

现在,我想知道做这件事的最佳方法是什么.

我是不是该:

•拥有一个包含大量VisualStates和东西的单个XAML文件(对于每个页面),并尝试为每个屏幕分辨率重新排列UI

•拥有共享项目的不同项目(如W8.1通用应用程序),以便我可以专注于每个特定设备上的UI?这是我更熟悉的方法,因为我能够毫无问题地设计特定于平台的UI元素.尽管如此,我还是不明白如何在VS2015中为每种设备类型实际创建共享项目和不同的项目.

•将该方法与共享相同代码隐藏文件的不同XAML页面一起使用(即使我不确定如何实现它,以及如何实现特定于平台的代码隐藏部分).

•其他一些方法

我的意思是,我确定我不是唯一遇到麻烦的W8.1/WP8.1开发人员,我可以使用某种建议吗?我已经观看了有关W10开发的所有MVA视频,但他们没有深入了解那里的实现细节.

谢谢您的帮助

塞尔吉奥

Pet*_*SFT 1

SplitView如果您查看使用ControlRelativePanelControl 的情况,这两个屏幕截图不一定有那么不同。

请参阅此 //build 演讲以获取更多信息。