2011-06-23 12 views
6

WPF ... jeśli dodać obraz do mojego ResourceDictionary i później użyć StaticResource do korzystania z niego w wielu miejscach ... czy ten obraz ma tylko jedno wystąpienie? lub czy nowe wystąpienie tego obrazu jest tworzone za każdym razem, gdy go używam?Obrazy WPF wewnątrz ResourceDictionary są singleton?

+0

miałem problem związany z tym, patrz [Obrazy w XAML ResourceDictionary zniknie ToolBar kiedy otwiera Menu] (http://stackoverflow.com/questions/5597554/images-in-xaml-resourcedictionary-disappear-on-toolbar-when-menu-opens). – user7116

Odpowiedz

5

Instance Poziom
W tej samej instancji elementu, który przechowuje ResourceDictionary, tak, to jest zawsze brane z tej samej instancji, jak długo nie mów x:Shared="false".
W przypadku elementów sterujących i obrazów będzie to konieczne, jeśli chcesz, aby były używane więcej niż jeden raz. Dla ImageSources nie. Dzieje się tak dlatego, że element może mieć tylko jeden element nadrzędny.

Poziom globalny
Jednak zasoby są ładowane dla każdej instancji. Oznacza to, że jeśli zdefiniujesz Zasób w sekcji zasobów kontrolki UserControl, dla każdej instancji twojego UserControl zostanie załadowane jedno wystąpienie zasobu. Umieść często używane zasoby w sekcji Zasoby aplikacji lub w sekcji Zasoby systemu Windows.

Here Znajdziesz więcej informacji.

Powiązane problemy