WPF - 如何更改UI的设计(元素的位置)

时间:2017-05-19 16:30:46

标签: wpf

请问如何更改UI中元素的位置,或者在应用程序加载时选择其他设计?

可以使用每个设计的用户控件来完成,但是这个解决方案的坏处是会重复相同的代码,我不希望这样。

请问最好的做法是什么,应该注意控件必须有一个名称才能在代码中使用它。

提前致谢。

总结:这就是我想要实现的目标

Desired design 1 Desired design 2

2 个答案:

答案 0 :(得分:0)

在WPF中,布局都是XAML。 XAML可以存储在资源字典中。因此,一旦确定了所需的布局,就可以加载正确的资源字典。基本上这个模式就像人们加载主题来改变UI等的颜色一样。

答案 1 :(得分:0)

我曾经遇到过类似你的情况。 在您的情况下,您应首先按如下方式设计网格,

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="{Binding LeftButtonColWidth}"/>
    <ColumnDefinition Width="{Binding RightMainPanelColWidth}"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
    <RowDefinition Height = "32"/>
    <RowDefinition Height = "*"/>
    <RowDefinition Height = "{Binding ightMainPanelBottomButtonRowHeight}"/>
</Grid.RowDefinitions>

然后添加属性&#34; LeftButtonColWidth&#34;,&#34; RightMainPanelColWidth&#34;和&#34; RightMainPanelBottomButtonRowHeight&#34;在viewmodel中根据最终用户指定的某些设置来控制你的布局。

以上代码仅适用于主容器。 您还需要一个Buttons的容器网格,它应该使用Binding属性设计为主容器网格。在按钮容器中,您需要将Grid.Row和Grid.Column绑定到属性&#34; ButtonContainerRow&#34;和&#34; ButtonContainerCol&#34;在ViewModel中,当应用程序启动时,它们将根据某些特定设置进行更改。

这是我的解决方案。必须有其他更好的解决方案。 我希望有人能用xmal给我一个解决方案。那将是完美的。