gpt4 book ai didi

c# - 在运行时动态合并资源字典(对于插件)

转载 作者:太空狗 更新时间:2023-10-30 01:28:08 25 4
gpt4 key购买 nike

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

其中一些功能可能是使用某些数据模板显示数据,您可能希望在 xaml 资源文件中指定这些内容。

如果我在应用程序编译时未知的程序集中定义了这些扩展点之一(即简单语言的插件),但我仍然想将插件的资源与应用程序的资源合并,我该怎么办是吗?

所有显示如何使用 pack URI 表示法执行此操作的示例表明,当您引用的程序集在编译时已知时,这是解决方案。如果您不熟悉编译时的程序集,您如何实现同样的事情?

最佳答案

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

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

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

关于c# - 在运行时动态合并资源字典(对于插件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1399447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com