gpt4 book ai didi

c# - 如何在项目的各个环节高效使用资源字典

转载 作者:太空狗 更新时间:2023-10-29 23:20:39 25 4
gpt4 key购买 nike

我在许多转换器中使用资源字典(相同的字典)作为局部变量。

var DeignerDictionary = new ResourceDictionary
{
Source = new Uri(path)
};

每次我创建一个新实例时,应用程序的内存都非常高。

然后我将资源字典移动到一个静态字段中并重新使用了字典,但是样式没有正确呈现。

public class resourceDictionaryProvider{
public readonly ResourceDictionary StaticDictionary =
new ResourceDictionar {Source = new Uri(path)};
}

任何人都可以建议我做错了什么,请提供您的建议。

仅将 ResourceDictionary 更改为静态后出现此问题。但以下代码工作正常。

public class resourceDictionaryProvider{
public static readonly ResourceDictionary StaticDictionary =
new ResourceDictionar {Source = new Uri(path)};
}

现在我正在为 resourceDictionaryProvider 类创建一个实例并且它工作正常,但我不想创建实例所以只有我将它更改为静态。

这里的static关键字有什么问题?

最佳答案

这是 WPF ResourceDictionaries 的一个众所周知的问题。解决方案是自己实现一个 SharedResourceDictionary 构造,以防止每次使用时重新实例化资源。看看这个链接:WPF SharedResourceDictionary对于 SharedResourceDictionary 构造的出色实现。(所有学分归作者所有)

关于c# - 如何在项目的各个环节高效使用资源字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40588988/

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