Sdílet prostřednictvím


x:Shared – atribut

Při nastavení na falsehodnotu upraví chování při načítání prostředků WPF tak, aby požadavky na atributový prostředek vytvořily pro každý požadavek novou instanci místo sdílení stejné instance pro všechny požadavky.

Použití atributu XAML

<ResourceDictionary>
  <object x:Shared="false".../>
</ResourceDictionary>

Poznámky

x:Shared je namapován na obor názvů XAML jazyka XAML a je rozpoznán jako platný prvek jazyka XAML službami .NET XAML Services a jejími čtenáři XAML. Uvedené funkce x:Shared jsou však relevantní pouze pro aplikace WPF a pro analyzátor WPF XAML. V WPF je x:Shared užitečné pouze jako atribut při použití na objekt, který existuje v rámci WPF ResourceDictionary. Jiná použití nevyvolají výjimky analýzy ani jiné chyby, ale nemají žádný vliv.

Význam x:Shared není zadán ve specifikaci jazyka XAML. Jiné implementace XAML, například ty, které jsou založené na službách .NET XAML, nemusí nutně poskytovat podporu sdílení prostředků. Takové implementace XAML by mohly poskytovat podobné chování v podpůrném rozhraní, které také používaly x:Shared hodnoty.

Ve WPF je výchozí x:Shared podmínka pro prostředky true. Tato podmínka znamená, že každý daný požadavek na prostředek vždy vrátí stejnou instanci.

Úprava objektu vráceného prostřednictvím rozhraní API prostředků, jako FindResourceje například nebo úprava objektu přímo v rámci objektu ResourceDictionary, změní původní prostředek. Pokud byly odkazy na tento prostředek dynamické odkazy na prostředky, příjemci tohoto prostředku získají změněný prostředek.

Pokud byly odkazy na prostředek statické odkazy na prostředky, změny prostředku po době zpracování XAML jsou irelevantní. Další informace o statických a dynamických odkazech na prostředky naleznete v tématu Přehled prostředků XAML (WPF .NET).

Explicitní zadání x:Shared="true" se provádí zřídka, protože je to už výchozí. V objektovém modelu WPF neexistuje žádný přímý ekvivalent x:Shared kódu. Je možné ho zadat pouze v použití XAML a musí být zpracován ve výchozím chování WPF nebo v zprostředkujícím datovém proudu uzlu XAML v cestě načítání, pokud je zpracován pomocí služeb XAML .NET XAML a jeho čteček XAML.

Scénář x:Shared="false" spočívá v tom, že definujete FrameworkElement nebo FrameworkContentElement odvozenou třídu jako prostředek a pak tento prvek zavedete do con režim stanu l. x:Shared="false" umožňuje, aby byl prostředek prvku zaveden vícekrát ve stejné kolekci (například UIElementCollection). Bez x:Shared="false" této hodnoty není platná, protože kolekce vynucuje jedinečnost jejího obsahu. Chování x:Shared="false" však místo vrácení stejné instance vytvoří další identickou instanci prostředku.

Dalším scénářem x:Shared="false" je, že použijete Freezable prostředek pro hodnoty animace, ale chcete prostředek upravit na základě animace.

Zpracování řetězců false nerozlišuje malá a velká písmena.

Ve WPF x:Shared platí pouze za následujících podmínek:

Viz také