【问题标题】:Reference MergedDictionary from MEF loaded来自 MEF 的引用 MergedDictionary 已加载
【发布时间】:2013-08-22 06:26:28
【问题描述】:

加载使用资源字典的外部插件时遇到问题。我正在使用 MEF 和延迟加载在外部程序集中加载用户控件,这是一个用户控件库项目。

该用户控件以如下方式引用资源字典,并标记为en export:

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source ="MyTheme.xaml" />   
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

主应用程序加载插件,并像这样导入它的资源字典:

[ImportMany(typeof(ResourceDictionary))]
private IEnumerable<ResourceDictionary> _resourceDictionaries { get; set; }

private void Load()
{
   foreach (var resourceDictionary in _resourceDictionaries)
   {
        Application.Current.Resources.MergedDictionaries.Add(resourceDictionary);
   }
}

这可以工作并从外部程序集中加载用户控件和字典。但是,在创建控件的实例时,主应用程序会抛出一个异常,指出它找不到引用的 ResourceDictionary。

如何让我的宿主应用知道在哪里查找其外部用户控制资源字典?还是应该更改用户控件引用其资源的方式?

【问题讨论】:

    标签: wpf mef resourcedictionary


    【解决方案1】:

    好的,它开始工作了。资源文件必须在构建操作中设置为 Resource。

    更多细节在这里: Loading merged ResourceDictionary from different assembly fails

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      • 2011-09-11
      • 1970-01-01
      • 2011-10-19
      • 1970-01-01
      相关资源
      最近更新 更多