在运行时替换控件的最佳方法是什么?

时间:2010-07-21 19:44:47

标签: c# wpf

我是WPF的新手,我有这种情况:

我有一个应用程序,其中包含应在不同时间(不同的应用程序状态)显示不同控件集的区域。

我想知道WPF中的方法是什么?

在winforms中,我会在运行时使控件可见/不可见。如果控件太多,我会将它们分组到Panels / UserControls上并显示/隐藏它们。

我的直觉告诉我在WPF中有更好的方法。

2 个答案:

答案 0 :(得分:2)

在WPF中执行此操作有很多选项。除了通过设置Visibility隐藏和显示单个或控件组之外,您还可以使用不同的DataTemplates来包含每个状态的控件集并在这些控件之间切换。您只需要一个ContentControl,您可以在其上设置ContentTemplate。然后可以使用Trigger,Binding,代码或使用ContentTemplateSelector选择模板将ContentTemplate值切换到不同的DataTemplates。

答案 1 :(得分:1)

Visibility属性完美地描述了您的旧winforms习惯。

您还需要查看Visual States。这将允许您隐藏/显示多个控件甚至更改其他属性(即启用状态,字体颜色)。