WPF网格行基于方向的布局
本文关键字:方向 布局 网格 于方向 WPF | 更新日期: 2023-09-27 18:10:58
如果我在WPF中有一个Grid
,我想让RowDefinitions
的高度基于设备当前的方向,我该如何实现这一点?
例如,当我的应用程序处于横向模式时,我的默认RowDefinitions
是:
<Grid.RowDefinitions>
<RowDefinition Height=".25*"/>
<RowDefinition Height=".50*"/>
<RowDefinition Height=".1*"/>
</Grid.RowDefinitions>
然而,这在纵向模式下看起来很傻。在竖屏模式下,我希望RowDefinitions
是这样的:
<Grid.RowDefinitions>
<RowDefinition Height=".15*"/>
<RowDefinition Height=".75*"/>
<RowDefinition Height=".1*"/>
</Grid.RowDefinitions>
我可能只是将每个Height
绑定到我的ViewModel中反映当前方向的属性,然后使用转换器来设置高度,但这似乎不是正确的方法来处理这个问题。
有更好的方法吗?
请看一下这个问题。
WPF中的横向-纵向方向
你需要创建一个实现横向和横向的视图,并使用属性和DataTrigger来改变视图,你需要绑定来自设备的输入,设置当前的方向。
你也可以切换使用DataTrigger或DataTemplate这取决于你的UI有多大和多复杂