请问如何更改UI中元素的位置,或者在应用程序加载时选择其他设计?
可以使用每个设计的用户控件来完成,但是这个解决方案的坏处是会重复相同的代码,我不希望这样。
请问最好的做法是什么,应该注意控件必须有一个名称才能在代码中使用它。
提前致谢。
总结:这就是我想要实现的目标
答案 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给我一个解决方案。那将是完美的。