【问题标题】:How do I share resources between ResourceDictionaries which reference resources in the other?如何在引用另一个资源的 ResourceDictionaries 之间共享资源?
【发布时间】:2012-11-28 06:02:42
【问题描述】:

假设我有多个资源字典,并且某些资源具有对另一个资源字典中资源的动态/静态资源引用,它们是否可以相互引用而不必使用 MergedDictionary 来引用另一个字典?

我认为将所有资源字典合并到 Application.Resources 将允许将所有动态/静态资源引用解析到应用程序级别,但这给了我一个异常,即找不到密钥,所以我猜它没有那样工作?

如果这些资源字典依赖于另一个资源,则通过 MergedDictionaries 相互引用,然后我将它们全部合并到 Application.Resources 中,我不是将相同资源字典的副本创建为单独的实例并不必要地浪费内存?

有没有更优雅的方法来做到这一点?

【问题讨论】:

    标签: .net wpf xaml


    【解决方案1】:

    这是一个缓存 ResourceDictionary 对象的 MergedDictionary 实现(避免重复问题。)

    http://www.wpftutorial.net/MergedDictionaryPerformance.html

    【讨论】:

    • 很好的解决方案,但是将其他字典合并在一起是唯一的选择吗?使用共享字典线程安全吗?
    • 我认为由于 WPF(通常)是单线程的(就像大多数 GUI 框架一样),因此您不必担心多个线程访问您的资源字典。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 2021-09-24
    • 2011-05-11
    相关资源
    最近更新 更多