如何将MaterialDesignInXAML仅应用于一个控件

我想对我的WPF应用程序的某些元素使用MaterialDesignInXAML,但我不想将主题应用于整个应用程序(我对按钮特别感兴趣)

那么如何在不将其应用于App.xaml的情况下使用主题:

<Application . . . >
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
            <ResourceDictionary Source="pack://application:,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
            <ResourceDictionary Source="pack://application:,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.DeepPurple.xaml" />
            <ResourceDictionary Source="pack://application:,/MaterialDesignColors;component/Themes/Recommended/accent/MaterialDesignColor.Lime.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

liuxueyang1119 回答:如何将MaterialDesignInXAML仅应用于一个控件

您应在ResourceDictionary中添加UserControl

<Button x:Class="MyButton">
<Button.Resources>
<ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="pack://application:,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
        <ResourceDictionary Source="pack://application:,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
        <ResourceDictionary Source="pack://application:,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.DeepPurple.xaml" />
        <ResourceDictionary Source="pack://application:,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" />
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Button.Resources>
</Button>

并使用MyButton

<MyButton></MyButton>
,

仅引用按钮资源: MaterialDesignTheme.Button.xaml

<Application>
  <Application.Resources>
    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="pack://application:,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Button.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Application.Resources>
</Application>

所有样式都不是隐式的,必须显式引用为{StaticResource}。您可以检查source file on GitHub以了解可用的样式(键)。

本文链接:https://www.f2er.com/3129004.html

大家都在问