WPF动态更改布局的最佳方式

时间:2013-02-10 08:28:01

标签: wpf wpf-controls

我开始构建一个C#WPF应用程序,我想要一个具有多个“屏幕”的控件(实际上是另一个UserControl),但我想让用户在多个布局预设之间进行选择。
例如 - 将主控制分成4/9/16/64窗口,或者在中间有一个大窗口,在边缘有一个小窗口。
所以我知道如何建立每个“模式”的布局,但我应该如何在它们之间切换? 毕竟,我希望有一个主控件使用如下方法:

mainControl.SwitchMode(Modes.LAYOUT_4_SCREENS);

并且控件将以优雅的方式更改布局(代码说话),并将每个屏幕(另一个UserControl)放在正确的位置。
有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可能以编程方式更改包装网格的内容。在不同的网格中,你可以构建你的布局。但我认为更加开发人员友好的方法是简单地创建不同的视图(usercontrols),然后将包装网格的内容切换到不同的用户控件,即

<Grid x:Name="LayoutRoot">
</Grid>

代码隐藏:

Layout4ScreenView screenView4 = new Layout4ScreenView();
Layout2ScreenView screenView2 = new Layout4ScreenView();

Switch(LayOut)
{
case Mode.LAYOUT_4_SCREENS:
LayoutRoot.Content = screenView4;
break;

case Mode.LAYOUT_2_SCREENS:
LayoutRoot.Content = screenView2;
break;

}