x:Static İşaretleme Uzantısıx:Static Markup Extension

Tanımlanan herhangi bir statik değere göre kod varlığa başvuran bir Ortak Dil Belirtimi (CLS)Common Language Specification (CLS)– uyumlu şekilde.References any static by-value code entity that is defined in a Ortak Dil Belirtimi (CLS)Common Language Specification (CLS)–compliant way. Başvurulan statik özelliği, XAML içinde bir özelliğinin değeri sağlamak için kullanılabilir.The static property that is referenced can be used to provide the value of a property in XAML.

XAML Öznitelik KullanımıXAML Attribute Usage

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

XAML DeğerleriXAML Values

prefix İsteğe bağlı.Optional. Eşlenmiş, varsayılan olmayan bir XAML ad alanına başvuruda önek.A prefix that refers to a mapped, non-default XAML namespace. prefix açıkça varsayılan XAML ad alanından gelen statik özellikler nadiren aldığından kullanımı gösterilmektedir.prefix is shown explicitly in the usage because you rarely reference static properties that come from a default XAML namespace. Açıklamalara bakın.See Remarks.
typeName Gerekli.Required. İstenen statik üyeyi tanımlayan türü adı.The name of the type that defines the desired static member.
staticMemberName Gerekli.Required. (Bir sabit, statik bir özellik, alan veya bir sabit listesi değeri) istenen statik değere üyesinin adı.The name of the desired static value member (a constant, a static property, a field, or an enumeration value).

AçıklamalarRemarks

Başvurulan kod varlık aşağıdakilerden biri olmalıdır:The code entity that is referenced must be one of the following:

  • Bir sabitiA constant
  • Statik bir özellikA static property
  • Bir alanA field
  • Bir sabit listesi değeriAn enumeration value

XAML biçimlendirme veya bir XAML yükleme zamanı ayrıştırma özel durumu ise başka kod bir varlık, statik olmayan bir özellik gibi belirten bir derleme zamanı hatasına neden olur.Specifying any other code entity, such as a nonstatic property, causes a compile-time error if the XAML is markup compiled, or a XAML load-time parse exception.

Yapabileceğiniz x:Static başvurularını statik alanlar veya geçerli XAML belgesinin; varsayılan XAML ad alanı olmayan özellikler ancak bu bir ön ek eşleştirmesi gerektirir.You can make x:Static references to static fields or properties that are not in the default XAML namespace for the current XAML document; however, this requires a prefix mapping. XAML ad alanları, neredeyse her zaman XAML belgesinin kök öğesinde tanımlanır.XAML namespaces are almost always defined on the root element of the XAML document.

Varsayılan XAML şema içeriği ile çalışırken statik özellikler için arama işlemleri, .NET Framework XAML hizmetlerinde ve XAML okuyucular ve XAML yazarları tarafından gerçekleştirilebilir.The lookup operations for static properties can be performed by .NET Framework XAML Services and its XAML readers and XAML writers, when they are running with the default XAML schema context. Bu XAML şema içeriği CLR yansıma, gerekli statik değerler için Nesne grafiği oluşturmayı sağlamak için kullanabilirsiniz.This XAML schema context can use CLR reflection to provide the necessary static values for object graph construction. typeName Belirtmeniz aslında bir XAML türü adı, bir CLR türü adı değil, bunlar aslında aynı ada varsayılan XAML şema içeriği kullanırken ya da tüm var olan CLR tabanlı XAML-uygulama çerçeveleri kullanırken olmasına rağmen.The typeName you specify is actually a XAML type name, not a CLR type name, although these are essentially the same name when using the default XAML schema context or when using all existing CLR-based XAML-implementing frameworks.

Yaptığınız kullanırken dikkatli x:Static doğrudan bir özelliğin değerinin türü olmayan başvurular.Use caution when you make x:Static references that are not directly the type of a property's value. XAML içinde dizisi, bir işaretleme uzantısı değerlerinden sağlanan işleme çağrılamadı ek değer dönüştürme.In the XAML processing sequence, provided values from a markup extension do not invoke additional value conversion. Bu doğru olsa bile, x:Static başvuru bir metin dizesi oluşturur ve bu belirli üye veya dönüş türünün hiçbir üyesi değerler için genellikle metin dizesine dayalı öznitelik değerleri için bir değer dönüştürme gerçekleşir.This is true even if your x:Static reference creates a text string, and a value conversion for attribute values based on text string typically occurs either for that specific member or for any member values of the return type.

Öznitelik sözdizimi, bu işaretleme uzantısı ile kullanılan en yaygın sözdizimidir.Attribute syntax is the most common syntax used with this markup extension. Sonra sağlanan dize belirteci x:Static tanımlayıcı dizesi olarak atandığı Member temel değer StaticExtension uzantısı sınıfı.The string token provided after the x:Static identifier string is assigned as the Member value of the underlying StaticExtension extension class.

Teknik olarak mümkün olan diğer iki XAML kullanımları vardır.There are two other XAML usages that are technically possible. Ancak, bu kullanımları gereksiz yere ayrıntılıdır oldukları için daha az yaygın olan:However, these usages are less common because they are unnecessarily verbose:

  1. Nesne öğesi sözdizimi.Object element syntax.

    <x:Static Member="prefix:typeName.staticMemberName" ... />
    
  2. Başlatma dizesi için açık bir üye özelliği ile söz dizimi özniteliği.Attribute syntax with explicit Member property for initialization string.

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

.NET Framework XAML hizmetlerinde uygulamasında, bu işaretleme uzantısının işlenmesi tarafından tanımlanan StaticExtension sınıfı.In the .NET Framework XAML Services implementation, the handling for this markup extension is defined by the StaticExtension class.

x:Static bir işaretleme uzantısıdır.x:Static is a markup extension. XAML kullanım içindeki tüm biçimlendirme uzantıları { ve } karakter kendi öznitelik sözdizimi kuralı tarafından bir XAML işlemcisinin bir işaretleme uzantısı bir değer belirtmeniz gerekir.All markup extensions in XAML use the { and } characters in their attribute syntax, which is the convention by which a XAML processor recognizes that a markup extension must provide a value. Biçimlendirme uzantıları hakkında daha fazla bilgi için bkz: genel XAML işaretleme uzantılarına.For more information about markup extensions, see Markup Extensions for XAML Overview.

WPF kullanım notlarıWPF Usage Notes

WPF programlama için kullandığınız varsayılan XAML ad alanı birçok yararlı statik özellikleri içermiyor ve kullanışlı statik özelliklerin çoğu sahip gerek kalmadan, kullanımı kolaylaştırmak tür dönüştürücüleri gibi desteği {x:Static} .The default XAML namespace you use for WPF programming does not contain many useful static properties, and most of the useful static properties have support such as type converters that facilitate the usage without requiring {x:Static} . Statik özellikler için aşağıdakilerden biri doğruysa bir XAML ad alanı için bir önek eşlemeniz gerekir:For static properties, you must map a prefix for a XAML namespace if one of the following is true:

  • WPF içinde var, ancak WPF için varsayılan XAML ad alanı bir parçası olmayan bir türe başvuruyor (http://schemas.microsoft.com/winfx/2006/xaml/presentationhttp://schemas.microsoft.com/winfx/2006/xaml/presentation).You are referencing a type that exists in WPF but is not part of the default XAML namespace for WPF (http://schemas.microsoft.com/winfx/2006/xaml/presentationhttp://schemas.microsoft.com/winfx/2006/xaml/presentation). Bunu kullanmak için oldukça sık karşılaşılan bir senaryodur x:Static.This is a fairly common scenario for using x:Static. Örneğin, kullanabilirsiniz bir x:Static bir XAML ad alanı eşlemesi ile başvuru System statik özelliklerini başvurmak için CLR ad alanı ve mscorlib derlemesi Environment sınıfı.For example, you might use an x:Static reference with a XAML namespace mapping to the System CLR namespace and mscorlib assembly in order to reference the static properties of the Environment class.

  • Özel bir derlemeden bir tür başvuruyor.You are referencing a type from a custom assembly.

  • Varsayılan WPF XAML ad alanı bir parçası olarak eşlenmedi CLR ad alanı içinde türüdür, ancak bir WPF derlemede mevcut bir türe başvuruyor.You are referencing a type that exists in a WPF assembly, but that type is within a CLR namespace that was not mapped to be part of the WPF default XAML namespace. CLR ad alanları için WPF eşleme varsayılan XAML ad alanına çeşitli WPF derlemeleri tanımlarında tarafından gerçekleştirilen (Bu kavramı hakkında daha fazla bilgi için bkz: XAML ad alanları ve WPF XAML için Namespace eşlemesi).The mapping of CLR namespaces into the default XAML namespace for WPF is performed by definitions in the various WPF assemblies (for more information about this concept, see XAML Namespaces and Namespace Mapping for WPF XAML). XAML için genellikle gibi amaçlanmayan çoğunlukla sınıf tanımları, CLR ad uzayı oluşturuluyorsa olmayan eşlenen bir CLR ad alanları varolabilir System.Windows.Threading.Non-mapped CLR namespaces can exist if that CLR namespace is composed mostly of class definitions that are not typically intended for XAML, such as System.Windows.Threading.

WPF için ön ekleri ve XAML ad alanları kullanma hakkında daha fazla bilgi için bkz. XAML ad alanları ve WPF XAML Namespace eşleme.For more information on how to use prefixes and XAML namespaces for WPF, see XAML Namespaces and Namespace Mapping for WPF XAML.

Ayrıca Bkz.See Also

x:Type İşaretleme Uzantısıx:Type Markup Extension
WPF'den System.Xaml'e Geçirilen TürlerTypes Migrated from WPF to System.Xaml