【问题标题】:Multiple resource dictionaries, select one多个资源词典,选择一个
【发布时间】:2012-09-12 11:09:49
【问题描述】:

我正在开发一个使用资源字典进行样式设置的应用程序。我必须进行更改以启用配置设置来更改正在使用的字典。

我有三个字典:Original.xamlNeon.xaml & Graphite.xaml

App.xaml:

 <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="Resources/Original.xaml"/>
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

我可以通过调用来更改正在使用的字典:

private void DynamicLoadStyles(string StyleToUse)
{
    string fileName = "C:\\Data\\Projects\\MyApp\\MyApp\\Resources\\" +
        StyleToUse + ".xaml";
    using (FileStream fs = new FileStream(fileName, FileMode.Open))
    {
        ResourceDictionary dic = (ResourceDictionary)XamlReader.Load(fs);
        Resources.MergedDictionaries.Clear();
        Resources.MergedDictionaries.Add(dic);
    }
 }

一切都按预期工作(但是我不确定这是否是正确的方法)。问题是我宁愿嵌入文件,而不必从外部文件加载它们。

我已搜索信息以提供帮助,但找不到我要查找的内容。也就是说,我是 WPF 的新手(3 周),还不确定我在做什么。

任何帮助将不胜感激。

【问题讨论】:

    标签: wpf resourcedictionary


    【解决方案1】:

    我真的不喜欢回答我自己的问题,因为这表明我一开始就不应该问。但我已经用 .... 解决了这个问题。

        private void LoadDynamicResource(String StyleToUse)
        {
    
            ResourceDictionary dic = new ResourceDictionary { Source = new Uri(StyleToUse, UriKind.Relative) };
            Resources.MergedDictionaries.Clear();
            Resources.MergedDictionaries.Add(dic);
    
        }
    

    不过,我会对这方面的意见感兴趣。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多