Tôi đang sử dụng từ điển tài nguyên (cùng một từ điển) trong nhiều trình biến đổi dưới dạng biến cục bộ.Cách sử dụng Resource Dictionary hiệu quả trong mọi phần của dự án
var DeignerDictionary = new ResourceDictionary
{
Source = new Uri(path)
};
Mỗi lần tôi tạo một phiên bản mới và bộ nhớ rất cao trong ứng dụng.
Sau đó, tôi đã chuyển từ điển tài nguyên sang trường tĩnh và tôi đang sử dụng lại từ điển, nhưng các kiểu không được hiển thị đúng cách.
public class resourceDictionaryProvider{
public readonly ResourceDictionary StaticDictionary =
new ResourceDictionar {Source = new Uri(path)};
}
Bất kỳ ai cũng có thể đề xuất những gì tôi đang làm sai, Vui lòng cung cấp đề xuất của bạn.
Sự cố xảy ra sau khi đã thay đổi ResourceDictionary thành static only.But mã sau hoạt động tốt.
public class resourceDictionaryProvider{
public static readonly ResourceDictionary StaticDictionary =
new ResourceDictionar {Source = new Uri(path)};
}
Bây giờ tôi đang tạo một cá thể cho lớp resourceDictionaryProvider và nó hoạt động tốt, Nhưng tôi không muốn tạo các cá thể Vì vậy, chỉ tôi đã thay đổi nó thành tĩnh.
Sự cố với từ khóa tĩnh ở đây là gì?
Bạn không nên nhanh chóng ResourceDictionaries trong code-behind. Thay vào đó, chúng nên được khai báo trong các tệp XAML và (nếu cần) được truy cập từ mã phía sau. – Clemens
Bạn có thể lồng từ điển tài nguyên vào các từ điển tài nguyên khác bằng cách sử dụng thuộc tính Nguồn như giải thích trong http://stackoverflow.com/questions/25023671/nested-resource-dictionary-in-separate-library. App.xaml chứa một từ điển tài nguyên sẽ được tải tự động với ứng dụng, vì vậy, những gì bạn đưa vào hoặc tham chiếu có sẵn để sử dụng ứng dụng rộng. –
Vấn đề mà anh ta đang cố gắng giải quyết là một vấn đề nổi tiếng với các cá thể từ điển tài nguyên (hog tài nguyên chính vì nó sẽ tái tạo các từ điển bao gồm tất cả các từ điển mỗi khi chúng được tham chiếu thông qua một điều khiển) - anh ta đang cố sử dụng SharedResourceDictionary. Câu hỏi là hợp lệ và nó sẽ được tốt đẹp để xem một câu trả lời thực tế cho điều này. – Maverik