代码之家  ›  专栏  ›  技术社区  ›  CannibalSmith

如何替换WPF控件的默认样式?

  •  2
  • CannibalSmith  · 技术社区  · 16 年前

    因此,当我在应用程序中应用其他类型的样式时,我不必执行 BasedOn number 9

    编辑:我想为我没有做的控件做这个,比如,按钮。

    2 回复  |  直到 15 年前
        1
  •  3
  •   John Bowen    16 年前

    听起来您想做的是为控件创建一个不同的Generic.xaml(主题)样式,但这并不是为内置控件设计的。您可以使用样式创建一个备用的主题程序集,这样就可以欺骗WPF加载(即PresentationFramework.Aero.dll)或子类化要替换模板的控件。在走这条路之前,你应该真正评估一下是否值得花时间投资。任何您可能能够使用的东西都会增加复杂性,并且只需将本地默认样式声明从

    <Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
    

    到

    <Style TargetType="{x:Type Button}">
    

    至于忽略主题,就自动选择过程而言,没有什么可以控制的。标准方法是将特定主题的默认样式复制到App.xaml中作为应用程序的默认样式,并根据需要进行修改,但这显然会造成您试图摆脱的情况。