代码之家  ›  专栏  ›  技术社区  ›  Pieter Breed

在运行时动态合并资源字典(用于插件)

  •  3
  • Pieter Breed  · 技术社区  · 15 年前

    我正在为wpf应用程序使用托管扩展性框架。我为所谓的扩展点定义了接口,这些扩展点为应用程序提供了新功能。

    其中一些特性可能是使用某些数据模板来显示数据,您可能需要在xaml资源文件中指定这些模板。

    如果在应用程序编译时不知道的程序集中定义了这些扩展点(即纯语言的插件),但我仍然希望将插件的资源与应用程序的资源合并,我将如何进行?

    所有演示如何使用pack uri表示法进行此操作的示例,该表示法是在编译时已知您引用的程序集时的解决方案。在编译时不熟悉程序集时,如何实现相同的功能?

    2 回复  |  直到 13 年前
        1
  •  4
  •   Tim Cooper    13 年前

    您需要通过代码或约定获取要合并的资源字典的详细信息。详细信息可以是资源字典的名称或 ResourceDictionary 实例本身。

    在后一种情况下,您有 字典资源 实例,您可以将其合并到您的 Application -级别(或任何合适的级别)资源。

    在前一种情况下,您需要构造一个 pack URI 使用程序集的名称(可以通过调用从扩展中获得) extension.GetType().Assembly )然后创建 字典资源 谁的 Source 设置为包uri。最后,将其合并到资源树的适当级别。

        2
  •  0
  •   Community SushiHangover    7 年前

    Here's how to pull in resource dictionaries from parts into your application resources 使用mef(在本例中为数据模板)。基于I SoapBox Core 关于为视图导入资源字典的方法。