0

我需要在我的应用程序的两个不同位置显示一个外观相似的对话框,一个位置作为模式对话框,一个位置嵌入到另一个菜单中。

从我对 WPF 的有限理解来看,Styles 似乎允许我编写单个 UserControl 并为这两种情况自定义其颜色和字体。然而,变化更广泛一些,一些元素位置(例如,TextBox)处于不同的相对位置。

我不确定这是否可以使用 Styles 来完成,或者是否有更合适的方法在 WPF 中执行此操作。最坏的情况是,我可以编写两个完全不同的用户控件,但这在可维护性方面非常糟糕,所以我想避免它。

4

2 回答 2

0

当然,您可以使用样式/模板来做到这一点。只需给每个样式一个键,然后使用该键在正确的位置访问正确的样式:

<YourUserControl Style="{StaticResource firstStyle}"/>
于 2011-10-21T13:40:12.120 回答
0

如果你使用像 MVVM(我更喜欢 MVVM Light)这样的模式,这很容易做到。您将编写一个 ViewModel 来捕获您想要公开的所有数据和行为,然后按照您想要的方式创建两个视图,两者都使用相同的视图模型。

这个场景是 MVVM 模式背后的核心意图之一。您是对的,两次编写行为/管道是“不好的”,但观点不同,所以您没有违反任何重用。

于 2011-10-22T04:02:57.253 回答