如果我在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中反映当前方向的属性,然后使用转换器来设置高度,但这似乎不是解决此问题的正确方法。
有更好的方法吗?
答案 0 :(得分:0)
请看一下这个问题。
Landscape-Portrait orientation in WPF
您需要创建一个实现横向和横向的视图,并使用属性和DataTrigger更改视图,您需要绑定设备的输入,此时设置方向。
您还可以切换使用DataTrigger或DataTemplate,这取决于您的UI的大小和复杂程度。