0

当我使用“编辑副本”在混合中覆盖标准 WPF 控件的默认样式/控件模板而不修改它(只是创建 if 的本地副本)时,这会在某些情况下破坏主题吗?换句话说,不同的主题是否为标准控件提供不同的控件模板和/或样式定义?如何确保我的样式/控件模板尊重主题?

4

2 回答 2

0

是的,这打破了主题;

是的,不同的主题提供不同的控件样式。如果您有 MS Blend,您可以在 Blend 的文件夹中找到它们(例如在 C:\Program Files\Microsoft Expression\Blend 3\SystemThemes\Wpf 中)

为了尊重主题,您还应该为控件创建每个主题的一种样式。有很多关于自定义控件和主题支持的资源。提一个:WPF:根据系统主题改变控件风格

于 2009-10-16T14:02:52.830 回答
0

作为开发人员,您希望根据控件的功能来编写控件。到处使用默认控件样式。然后让专业人士处理它的图形设计方面。如果您覆盖控件的 ControlTemplate,您已经忙于主题化。

如果您确实使用 ControlTemplates 尝试并保持标准方法,否则一旦图形设计师开始处理应用程序,他/她就会对您发誓:)

主题是针对单个控件并重新定义其外观的样式集合。您为其提供了 ControlTemplate 的任何控件都不会应用它或与主题包不一致(取决于您是通过 x:Name 还是通过 Type 访问主题)

但是,如果您覆盖 DataTemplates,您就可以了。您可以安全地做到这一点,而不必担心主题干扰。

于 2009-10-16T14:03:46.243 回答