x:Static İşaretleme Uzantısı

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 Tanım
prefix isteğe bağlı. 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 başvurular yapabilirsiniz x:Static ; 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. Varsayılan typeName XAML şema bağlamı kullanılırken veya tüm mevcut CLR tabanlı XAML uygulayan çerçeveler kullanılırken bunlar temelde aynı ad olsa da, belirttiğiniz ad aslında clr türü adı değil XAML türü adıdır.

Doğrudan bir özelliğin değerinin türü olmayan başvurular yaparken x:Static 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. Başvurunuz x:Static 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ünün herhangi bir üye değeri için gerçekleşse bile bu durum geçerlidir.

Öznitelik sözdizimi, bu işaretleme uzantısı ile kullanılan en yaygın sözdizimidir. Tanımlayıcı dizesinden x:Static sonra sağlanan dize belirteci, temel alınan StaticExtension uzantı sınıfının değeri olarak Member 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 sınıfı tarafından StaticExtension 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 } karakterlerini kullanır{. Bu, bir 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ı birçok yararlı statik özellik içermez ve kullanışlı statik özelliklerin çoğu, gerekmeden {x:Static} 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 (http://schemas.microsoft.com/winfx/2006/xaml/presentation) için varsayılan XAML ad alanının parçası olmayan bir türe başvuruda bulunursunuz. Bu, kullanmak x:Staticiçin oldukça yaygın bir senaryodur. Örneğin, sınıfın statik özelliklerine Environment başvurmak için System CLR ad alanı ve mscorlib derlemesi ile eşleştirilmiş bir XAML ad alanı ile bir x:Static başvuru 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 XAML için XAML Ad Alanları ve Ad Alanı Eşlemesi). Eşlenmemiş CLR ad alanları, CLR ad alanı genellikle gibi System.Windows.ThreadingXAML için tasarlanmamış sınıf tanımlarından oluşuyorsa mevcut olabilir.

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

Ayrıca bkz.