Aracılığıyla paylaş


x:Shared Özniteliği

olarak falseayarlandığında, WPF kaynak alma davranışını değiştirerek öznitelikli kaynağa yönelik isteklerin tüm istekler için aynı örneği paylaşmak yerine her istek için yeni bir örnek oluşturmasını sağlar.

XAML Öznitelik Kullanımı

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

Açıklamalar

x:Shared XAML dili XAML ad alanına eşlenir ve .NET XAML Hizmetleri ve XAML okuyucuları tarafından geçerli bir XAML dil öğesi olarak kabul edilir. Ancak, belirtilen özellikleri x:Shared yalnızca WPF uygulamaları ve WPF XAML ayrıştırıcısı için geçerlidir. WPF'de, x:Shared yalnızca bir WPF ResourceDictionaryiçinde bulunan bir nesneye uygulandığında öznitelik olarak yararlıdır. Diğer kullanımlar ayrıştırma özel durumları veya diğer hataları oluşturmaz, ancak hiçbir etkisi yoktur.

anlamı x:Shared XAML dil belirtiminde belirtilmemiştir. .NET XAML Hizmetleri üzerinde derleme yapanlar gibi diğer XAML uygulamaları mutlaka kaynak paylaşımı desteği sağlamaz. Bu tür XAML uygulamaları, destekleyici çerçevede değerleri de kullanan x:Shared benzer davranışlar sağlayabilir.

WPF'de kaynaklar için varsayılan x:Shared koşuldur true. Bu koşul, belirli bir kaynak isteğinin her zaman aynı örneği döndürdüğü anlamına gelir.

gibi FindResourcebir kaynak API'si aracılığıyla döndürülen bir nesneyi değiştirmek veya doğrudan içinde ResourceDictionarybir nesneyi değiştirmek özgün kaynağı değiştirir. Bu kaynağa yapılan başvurular dinamik kaynak başvurularıysa, bu kaynağın tüketicileri değiştirilen kaynağı alır.

Kaynağa yapılan başvurular statik kaynak başvurularıysa, XAML işleme süresinden sonra kaynakta yapılan değişiklikler önemsizdir. Statik ve dinamik kaynak başvuruları hakkında daha fazla bilgi için bkz . XAML kaynaklarına genel bakış (WPF .NET).

Açıkça belirtme x:Shared="true" işlemi nadiren yapılır, çünkü bu zaten varsayılandır. WPF nesne modelinde için x:Shared doğrudan kod eşdeğeri yoktur; yalnızca bir XAML kullanımında belirtilebilir ve .NET XAML Hizmetleri ve XAML okuyucuları kullanılarak işlenirse yük yolundaki bir ara XAML düğümü akışında veya varsayılan WPF davranışıyla işlenmelidir.

için x:Shared="false" bir senaryo, kaynak olarak veya FrameworkContentElement türetilmiş bir FrameworkElement sınıf tanımlayıp öğe kaynağını con çadır modu l olarak tanıtmaktır. x:Shared="false" bir öğe kaynağının aynı koleksiyonda (örneğin) birden çok kez tanıtılabilmesini UIElementCollectionsağlar. Koleksiyon x:Shared="false" içeriğinin benzersizliğini zorladığı için bu geçersizdir. Ancak davranış x:Shared="false" , aynı örneği döndürmek yerine kaynağın başka bir özdeş örneğini oluşturur.

Diğer bir senaryo x:Shared="false" ise, animasyon değerleri için bir Freezable kaynak kullanmanız ancak kaynağı animasyon temelinde değiştirmek istemenizdir.

dize işleme büyük false /küçük harfe duyarlı değildir.

WPF'de, x:Shared yalnızca aşağıdaki koşullar altında geçerlidir:

Ayrıca bkz.