Ven*_*kat 5 c# wpf optimization static resourcedictionary
我在许多转换器中使用资源字典(相同的字典)作为局部变量.
var DeignerDictionary = new ResourceDictionary
{
Source = new Uri(path)
};
Run Code Online (Sandbox Code Playgroud)
每次我创建一个新实例并且应用程序中的内存非常高.
然后我将资源字典移动到一个静态字段,我正在重用字典,但样式没有正确呈现.
public class resourceDictionaryProvider{
public readonly ResourceDictionary StaticDictionary =
new ResourceDictionar {Source = new Uri(path)};
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议我做错了,请提供您的建议.
将ResourceDictionary更改为仅静态后出现此问题.但以下代码工作正常.
public class resourceDictionaryProvider{
public static readonly ResourceDictionary StaticDictionary =
new ResourceDictionar {Source = new Uri(path)};
}
Run Code Online (Sandbox Code Playgroud)
现在我正在为resourceDictionaryProvider类创建一个实例,它工作正常,但我不想创建实例所以只有我已经将它更改为静态.
这里的static关键字有什么问题?
这是 WPF ResourceDictionaries 的一个众所周知的问题。解决方案是自行实现 SharedResourceDictionary 构造,以防止每次使用时重新实例化资源。看一下这个链接:WPF SharedResourceDictionary,了解 SharedResourceDictionary 构造的出色实现。(所有功劳归作者所有)
| 归档时间: |
|
| 查看次数: |
1047 次 |
| 最近记录: |