WPF:以编程方式更改用户控件

时间:2017-08-06 07:36:49

标签: c# wpf xaml

我是WPF新手,我想显示一个包含多个用户控件的窗口。

example.xaml

<DockPanel>

<Border x:Name ="TopRegion" DockPanel.Dock = "top">
    <local:userControl1/>
 </Border>

<Border x:Name ="leftRegion" DockPanel.Dock = "left">
    <local:userControl2/>
 </Border>

</DockPanel>

usercontrol1和usercontrol2是同一项目中的其他视图。 I.e usercontrol1.xaml和usercontrol2.xaml。

问题是我需要在运行时将usercontrol leftRegionusercontrol2更改为usercontrol3,即以编程方式。

如何在example.xaml.cs程序中实现此目的。

2 个答案:

答案 0 :(得分:1)

您已将Border leftRegion 命名为,因此您可以使用此Border设置新的子项

leftRegion.Child = new userControl3();

以编程方式编写代码。

这意味着您要使用userControl2的新实例替换Border的{​​{1}}实例。

答案 1 :(得分:-2)

虽然这是一个合法的请求,但它与XAML和数据绑定的逻辑交叉,所以我建议一种替代方法,它对最终用户具有相同的效果,但更符合XAML的精神。

解决方案很简单 - 只需在XAML中同时拥有两个控件,并根据是否需要显示一个或另一个控件来切换Visibility