作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在许多转换器中使用资源字典(相同的字典)作为局部变量。
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/
我是一名优秀的程序员,十分优秀!