我在許多轉換器中使用資源字典(同一字典)作爲局部變量。如何在項目的所有部分高效使用資源字典
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關鍵字有什麼問題?
代碼隱藏你不應該實例ResourceDictionaries。它們應該在XAML文件中聲明,並且(如有必要)可以從後面的代碼中訪問。 – Clemens
您可以在http://stackoverflow.com/questions/25023671/nested-resource-dictionary-in-separate-library中使用Source屬性將資源字典嵌套在其他資源字典中作爲explainen。 App.xaml包含將隨應用程序自動加載的資源字典,因此,您包含或引用的資源可用於應用程序範圍。 –
他試圖解決的問題是資源字典實例的一個衆所周知的問題(主要資源豬,因爲它會在每次通過控件引用時重新創建包括所有嵌套字典的字典) - 他試圖本質上使用SharedResourceDictionary。這個問題是有效的,很高興看到這個實際的答案。 – Maverik