我想使用http://brianlagunas.com/free-metro-light-and-dark-themes-for-wpf-and-silverlight-microsoft-controls/
中免费提供的主题中的ToggleButton样式问题是,如果我应用主题,不仅我的切换按钮被设置样式,而且每个控件都根据该主题设置样式。
如何从设计为隐式使用的主题中明确应用样式?
如何加载主题
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- Light Theme -->
<ResourceDictionary Source="Themes/Metro/Light/Metro.MSControls.Core.Implicit.xaml" />
<ResourceDictionary Source="Themes/Metro/Light/Metro.MSControls.Toolkit.Implicit.xaml" />
<!-- Dark Theme -->
<!--<ResourceDictionary Source="Themes/Metro/Dark/MetroDark.MSControls.Core.Implicit.xaml" />
<ResourceDictionary Source="Themes/Metro/Dark/MetroDark.MSControls.Toolkit.Implicit.xaml" />-->
</ResourceDictionary.MergedDictionaries>
<!-- Light Theme -->
<SolidColorBrush x:Key="BackgroundKey" Color="#FFFFFF" />
<!-- Dark Theme -->
<!--<SolidColorBrush x:Key="BackgroundKey" Color="#FF181818" />-->
</ResourceDictionary>
</Window.Resources>
我打算如何使用主题
<ToggleButton Content="ToggleButton" Width="150" Style="{StaticResource ToggleButtonStyle} />
感谢。
答案 0 :(得分:1)
问题是您加载ResourceDictionary
,为ToggleButton
定义隐式样式。
由于您链接的下载页面实际上是在下载完整的解决方案,因此您有以下选项:
Metro.MSControls.Core.Implicit.xaml
并将切换按钮的样式复制到您的资源(带ToggleButtonStyle
键的资源,并且不要忘记“带上”所有必要的画笔。由于那里没有DLL,我假设你编译了项目/解决方案 - 所以你可以重新编译它。如果是这样,请转到同一个文件并注释掉这一行:
<Style BasedOn="{StaticResource ToggleButtonStyle}" TargetType="{x:Type ToggleButton}" />
(文件中最后一个样式之前的一个)
重新编译它,你很高兴。
我肯定会选择第2号选项。