Aracılığıyla paylaş


x:Statik İşaretlemeyi Genişletme

Ortak Dil Belirtimi (CLS) ile uyumlu bir şekilde tanımlanan herhangi bir statik değere göre kod varlığına başvurur. Başvuruda bulunılan statik özellik, XAML'de bir özelliğin değerini sağlamak için kullanılabilir.

XAML Öznitelik Kullanımı

<object property="{x:Static prefix:typeName.staticMemberName}" .../>

XAML Değerleri

Değer Açıklama
prefix Opsiyonel. Eşlenmiş, varsayılan olmayan bir XAML ad alanına başvuran ön ek. prefix, varsayılan XAML ad alanından gelen statik özelliklere nadiren başvurduğunuz için kullanımda açıkça gösterilir. Bkz. Açıklamalar.
typeName Gerekli. İstenen statik üyeyi tanımlayan türün adı.
staticMemberName Gerekli. İstenen statik değer üyesinin adı (sabit, statik özellik, alan veya numaralandırma değeri).

Açıklamalar

Başvuruda bulunılan kod varlığı aşağıdakilerden biri olmalıdır:

  • Sabit
  • Statik özellik
  • Bir alan
  • Numaralandırma değeri

Statik olmayan özellik gibi başka bir kod varlığının belirtilmesi, XAML'nin derlenmiş işaretlemesi veya XAML yük süresi ayrıştırma özel durumu olması durumunda derleme zamanı hatasına neden olur.

Geçerli XAML belgesi için varsayılan XAML ad alanında olmayan statik alanlara veya özelliklere x:Static başvurular yapabilirsiniz; ancak bunun için bir ön ek eşlemesi gerekir. XAML ad alanları neredeyse her zaman XAML belgesinin kök öğesinde tanımlanır.

Statik özellikler için arama işlemleri, varsayılan XAML şema bağlamıyla çalışırken .NET XAML Hizmetleri ve XAML okuyucuları ve XAML yazıcıları tarafından gerçekleştirilebilir. Bu XAML şema bağlamı, nesne grafı oluşturma için gerekli statik değerleri sağlamak üzere CLR yansımasını kullanabilir. Belirttiğiniz typeName aslında CLR türü adı değil XAML türü adıdır, ancak bunlar varsayılan XAML şema bağlamı kullanılırken veya tüm mevcut CLR tabanlı XAML uygulayan çerçeveler kullanılırken temelde aynı addır.

Doğrudan bir özelliğin değerinin türü olmayan x:Static başvurular yaparken dikkatli olun. XAML işleme dizisinde, bir işaretleme uzantısından sağlanan değerler ek değer dönüştürmeyi çağırmaz. x:Static başvurunuz bir metin dizesi oluştursa ve metin dizesini temel alan öznitelik değerleri için değer dönüştürme işlemi genellikle söz konusu üye için veya dönüş türündeki herhangi bir üye değeri için gerçekleşse bile bu durum geçerlidir.

Öznitelik söz dizimi, bu işaretleme uzantısıyla kullanılan en yaygın söz dizimidir. x:Static tanımlayıcı dizesinden sonra sağlanan dize belirteci, temel alınan Member uzantı sınıfının StaticExtension değeri olarak atanır.

Teknik olarak mümkün olan iki XAML kullanımı daha vardır. Ancak, gereksiz yere ayrıntılı olduklarından bu kullanımlar daha az yaygındır:

  1. Nesne öğesi söz dizimi.

    <x:Static Member="prefix:typeName.staticMemberName" ... />
    
  2. Başlatma dizesi için açık Member özelliğine sahip öznitelik söz dizimi.

    <object property="{x:Static Member=prefix:typeName.staticMemberName}" ... />
    

.NET XAML Hizmetleri uygulamasında, bu işaretleme uzantısının işlenmesi StaticExtension sınıfı tarafından tanımlanır.

x:Static bir işaretleme uzantısıdır. XAML'deki tüm işaretleme uzantıları, öznitelik söz diziminde { ve } karakterleri kullanır. Bu, XAML işlemcisinin işaretleme uzantısının bir değer sağlaması gerektiğini tanıdığı kuraldır. biçimlendirme uzantıları hakkında daha fazla bilgi için bkz. XAML için biçimlendirme uzantılarına genel bakış.

WPF Kullanım Notları

WPF programlaması için kullandığınız varsayılan XAML ad alanı çok sayıda yararlı statik özellik içermez ve yararlı statik özelliklerin çoğu, {x:Static} gerekmeden kullanımı kolaylaştıran tür dönüştürücüleri gibi destek içerir. Statik özellikler için, aşağıdakilerden biri doğruysa XAML ad alanı için bir ön ek eşlemeniz gerekir:

  • WPF'de var olan ancak WPF için varsayılan XAML ad alanının parçası olmayan bir türe başvuruyorsanız (http://schemas.microsoft.com/winfx/2006/xaml/presentation). Bu, x:Statickullanmak için oldukça yaygın bir senaryodur. Örneğin, x:Static sınıfının statik özelliklerine başvurmak için System CLR ad alanı ve mscorlib derlemesine eşleştirilmiş bir XAML ad alanı ile Environment başvurusu kullanabilirsiniz.

  • Özel bir derlemeden türe başvuruda bulunusunuz.

  • WPF derlemesinde var olan bir türe başvuruda bulunursunuz, ancak bu tür WPF varsayılan XAML ad alanının parçası olarak eşlenmeyen bir CLR ad alanı içindedir. CLR ad alanlarını WPF için varsayılan XAML ad alanına eşleme, çeşitli WPF derlemelerindeki tanımlar tarafından gerçekleştirilir (bu kavram hakkında daha fazla bilgi için bkz. wpf XAMLiçin XAML Ad Alanları ve Ad Alanı Eşlemesi ). ClR ad alanı genellikle System.Windows.Threadinggibi XAML için tasarlanmamış sınıf tanımlarından oluşuyorsa eşlenmemiş CLR ad alanları bulunabilir.

WPF için ön ekleri ve XAML ad alanlarını kullanma hakkında daha fazla bilgi için bkz. XAML Ad Alanları ve WPF XAML için Ad Alanı Eşlemesi.

Ayrıca bkz.