覆盖默认样式/控制模板会破坏它们吗?

时间:2009-10-16 13:18:08

标签: wpf themes controltemplate

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

2 个答案:

答案 0 :(得分:0)

是的,这打破了主题;

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

为了尊重主题,您还应该为每个主题创建一个样式用于您的控件。自定义控件和主题支持有many resources。仅举一例:WPF: Changing control style based on the system theme

答案 1 :(得分:0)

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

如果您使用ControlTemplates进行捣乱,请尝试使用标准方法,否则一旦图形设计师开始处理该应用程序,他/她就会向您发誓:)

主题是针对个别控件的样式集合,并重新定义了它们的外观。您提供ControlTemplate的任何Control都将不会应用它或与主题包不一致(取决于您是通过x访问主题:名称还是按类型)

如果覆盖DataTemplates,则可以。你可以安全地做到这一点,而不必担心干扰。