Wpf 动态更改隐式样式

Wpf 动态更改隐式样式,wpf,xaml,styles,Wpf,Xaml,Styles,现在我在我的应用程序中有一些隐式样式的选项卡项。我想在我的应用程序中添加“夜间模式”并更改我的风格。我该怎么做呢?您可以使用合并词典来完成这项工作。将所有“普通”样式放入字典中,默认情况下将其添加到应用程序资源中: <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDic

现在我在我的应用程序中有一些隐式样式的选项卡项。我想在我的应用程序中添加“夜间模式”并更改我的风格。我该怎么做呢?

您可以使用合并词典来完成这项工作。将所有“普通”样式放入字典中,默认情况下将其添加到应用程序资源中:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Styles/Normal.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

阿方索的想法是对的。。。 但你必须在WPF中这样做

App.Current.Resources.MergedDictionaries.Clear(); 
Uri uri = new Uri("/Resources/GlassButton5Night.xaml", UriKind.Relative);
var resDict = Application.LoadComponent(uri) as ResourceDictionary;
App.Current.Resources.MergedDictionaries.Add(resDict);

您必须确保在正确的级别重置合并词典

XamlReader.Load不会将字符串作为arg。至少在4.0版抱歉,我从Silverlight项目中获取了该代码。在WPF中,它需要一个XmlReader,可以使用XmlReader.Create从流中构建它。