布局兼容不同的显示大小/方向在Metro XAML应用程序

本文关键字:方向 Metro 应用程序 XAML 显示 布局 | 更新日期: 2023-09-27 17:54:46

使用XAML/c#支持Metro/Winstore应用中不同的显示大小/模式/方向的原则是什么?有指导方针吗?

此刻,我希望能够显示一个列表视图,在纵向模式下有2个瓦片,在横向模式下有5个瓦片。

我想要这些2/5瓷砖自动填充屏幕宽度在模式改变。

我是否应该将tile模板绑定到一个属性并手动计算它,或者在。net 4.5中有更优雅的工具?

布局兼容不同的显示大小/方向在Metro XAML应用程序

最直接的解决方案是使用BasicPage模板,该模板使用LayoutAwarePage基类,并为每个ApplicationViewState (FullScreenLandscape, Filled, Snapped, FullScreenPortrait)提供可视化状态。然后定义两种设计,并使用视觉状态在设计之间切换。你可以处理Window.Current.SizeChanged事件来更新尺寸,使磁贴正好是屏幕尺寸的一部分,但这会适得其反,可能实际上不是最好的设计,因为用户可能不会立即看到内容是可滚动的,你还需要调整字体、图像等的大小,以适应新的尺寸。如果你真的想把你的内容尺寸映射到屏幕大小,你也可以把这些放在Viewbox控件中。