当方向改变时,改变WPF布局的最佳方法是什么?

当方向改变时,改变WPF布局的最佳方法是什么?,wpf,xaml,user-interface,layout,storyboard,Wpf,Xaml,User Interface,Layout,Storyboard,我的UI必须随着屏幕的方向而改变。特别是我必须更改grid.rows/columns-property和控件的对齐方式。从我的控制位置变化的动画将是很好的,但它不必。 对我来说更重要的是,我有一个简短而清晰的代码 我有一些方法,但可能有更多或更好的方法 我为每个方向状态创建一个额外的视图。(这会产生双重代码-可能不是很好,或者是吗?) 类似于故事板,在这里我可以使用XAML更改控件的位置。(我不知道如何更改grid.row和与故事板的对齐方式-这真的可能吗?) 用C代码更改它。(但我认为这不是一

我的UI必须随着屏幕的方向而改变。特别是我必须更改grid.rows/columns-property和控件的对齐方式。从我的控制位置变化的动画将是很好的,但它不必。 对我来说更重要的是,我有一个简短而清晰的代码

我有一些方法,但可能有更多或更好的方法

  • 我为每个方向状态创建一个额外的视图。(这会产生双重代码-可能不是很好,或者是吗?)
  • 类似于故事板,在这里我可以使用XAML更改控件的位置。(我不知道如何更改grid.row和与故事板的对齐方式-这真的可能吗?)
  • 用C代码更改它。(但我认为这不是一种合适的WPF风格?)
  • 也许有一个例子

    Thx Stefan

    例如,当方向改变时,您可以使用以旋转视图

    另一种方法: 由于您试图使用
    Grid.Row
    Grid.Column
    交换,我建议您使用
    StackPanel
    ,您只需将
    方向
    依赖属性设置为
    水平
    垂直


    注意:你是对的,我不建议使用C代码来解决这个问题,因为这是在
    视图
    一侧的情况,而不是在
    模型
    一侧。(关注点分离。)

    如果旋转视图,还必须向后旋转视图的所有元素,因为Windows也会旋转屏幕。UI上有很多控件,我想代码会变得混乱。使用Stackpanel是一个有趣的想法,在我的情况下,它可能会起作用。但我认为这并不总是一种选择,所以也许还有其他方法可以做到这一点?