x:Static İşaretleme Uzantısı
Ortak Dil Belirtimi (CLS) uyumlu bir şekilde tanımlanan herhangi bir statik by-value kod varlığa başvurur. Başvurulan 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
prefix |
İsteğe bağlı. Eşlenmiş, varsayılan olmayan bir XAML ad alanına başvuran ön ek. prefix , varsayılan bir XAML ad alanı tarafından gelen statik özelliklere nadiren başvurarak kullanımda açıkça gösterilir. Bkz. Açıklamalar. |
typeName |
Gereklidir. İstenen statik üyeyi tanımlayan türün adı. |
staticMemberName |
Gereklidir. İstenen statik değer üyesinin adı (sabit, statik özellik, alan veya sabit değer). |
Açıklamalar
Başvurulan kod varlığı, aşağıdakilerden biri olabilir:
- Sabit
- Statik özellik
- Bir alan
- Bir numaralama değeri
Statik olmayan özellik gibi diğer kod varlıklarını belirtmek, XAML işaretleme derlenmişse derleme zamanı hatasına veya XAML yükleme zamanı ayrıştırma özel durumuna neden olur.
Geçerli XAML belgesi için varsayılan XAML ad alanında olmayan statik alanlara veya özelliklere başvurular yapmak için bir ön ek x:Static eşlemesi gerekir. XAML ad alanları neredeyse her zaman XAML belgesinin kök öğesinde tanımlanır.
Statik özelliklere yönelik arama işlemleri, varsayılan XAML şema bağlamıyla çalıştır çalıştırıken .NET XAML Hizmetleri ve onun XAML okuyucuları ve XAML yazıcıları tarafından gerçekleştirebilirsiniz. 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 XAML şema bağlamını kullanırken veya tüm mevcut CLR tabanlı XAML uygulama çerçevelerini kullanırken temelde aynı ad olsa da, belirttiğiniz aslında bir CLR türü adı değil typeName XAML türü adıdır.
Doğrudan bir x:Static özelliğin değerinin türü olan başvurular yapmak için dikkatli olun. XAML işleme dizisinde, işaretleme uzantısından sağlanan değerler ek değer dönüştürmesi çağırmaz. Başvurun bir metin dizesi oluşturduğunda ve metin dizesini temel alan öznitelik değerleri için değer dönüştürme işlemi genellikle ilgili üye için veya dönüş türünde herhangi bir üye değeri için olsa bile x:Static bu durum geçerli olur.
Öznitelik sözdizimi, bu işaretleme uzantısı ile kullanılan en yaygın sözdizimidir. Tanımlayıcı dizesinin ardından sağlanan x:Static dize belirteci, temel Member uzantı sınıfının değeri olarak StaticExtension atanır.
Teknik olarak mümkün olan iki XAML kullanımı daha vardır. Ancak, gereksiz yere ayrıntılı olduğundan bu kullanımlar daha az yaygındır:
Nesne öğesi söz dizimi.
<x:Static Member="prefix:typeName.staticMemberName" ... />Başlatma dizesi için açık Üye özelliğine sahip öznitelik söz dizimi.
<object property="{x:Static Member=prefix:typeName.staticMemberName}" ... />
.NET XAML Services uygulamasında, bu işaretleme uzantısı için işleme 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 dizimlerinde ve karakterlerini kullanır. Bu kural, bir XAML işlemcisinin işaretleme uzantısının bir değer {} sağlaması gerektiğini tanıması kuralıdır. İşaretleme uzantıları hakkında daha fazla bilgi için bkz. XAML için İşaretleme Uzantılarına Genel Bakış.
WPF Kullanım Notları
WPF programlaması için kullanılan varsayılan XAML ad alanı birçok yararlı statik özellik içermez ve yararlı statik özelliklerin çoğu, kullanımı gerektirmeden kolaylaştıran tür dönüştürücüler gibi destek {x:Static} içerir. Statik özellikler için, aşağıdakilerden biri doğruysa XAML ad alanı için bir ön eki eşlemelisiniz:
WPF'de var olan ancak WPF için varsayılan XAML ad alanının bir parçası olan bir türe başvurabilirsiniz (
http://schemas.microsoft.com/winfx/2006/xaml/presentation). Bu, kullanımı için oldukça yaygın birx:Staticsenaryodur. Örneğin, sınıfın statik özelliklerine başvuru yapmak için CLR ad alanı ve mscorlib derlemesi ile eşlene bir XAML ad alanıx:StaticSystem ile bir başvuru Environment kullanabilirsiniz.Özel bir derlemeden bir türe başvururken.
WPF derlemesinde var olan bir türe başvurursınız, ancak bu tür WPF varsayılan XAML ad alanının parçası olmak için eşlenmemiş bir CLR ad alanı içindedir. CLR ad alanlarının WPF için varsayılan XAML ad alanına eşlenlaması çeşitli WPF derlemelerinde tanımlar tarafından gerçekleştirilir (bu kavram hakkında daha fazla bilgi için bkz. WPF XAML için XAMLAd Alanları ve Ad Alanı Eşlemesi). Eşlenmemiş CLR ad alanları, bu CLR ad alanı genellikle XAML'ye yönelik olmayan sınıf tanımları (örneğin, ) oluşursa mevcut System.Windows.Threading olabilir.
WPF için ön ekleri ve XAML ad alanlarını kullanma hakkında daha fazla bilgi için bkz. WPF XAML için XAMLAd Alanları ve Ad Alanı Eşlemesi.