Розширення розмітки Static, Microsoft Docs
Посилається на будь-якій сутності статичного коду за значенням, визначеним у Специфікація CLS Common Language Specification (CLS) — належним способом. References any static by-value code entity that is defined in a Специфікація CLS Common Language Specification (CLS) –compliant way. Статична властивість, яка вказується може використовуватися для надання значення властивості XAML. Статична особливість, що використовується як може бути використана для забезпечення рівня власності в XAML.
Використання атрибуту XAML XAML Attribute Usage
Значення XAML XAML Values
| prefix | Необов'язковий параметр. Optional. Префікс, який посилається на зіставлені, не за промовчанням простір імен XAML. A prefix that refers to a mapped, no-default namespace XAML. prefix явно наведено у використанні, оскільки рідко створюються посилання статичні властивості, отримані з простору імен XAML за умовчанням. is shown explicitly in usage because you rarely reference static properties that come from a default XAML namespace. Див. нотатки. See Remarks. |
| typeName | Обов'язковий. Required. Ім'я типу, який визначає потрібний статичний член. Ім'я типу type, що defines desired static member. |
| staticMemberName | Обов'язковий. Required. Ім'я необхідного статичного значення члена (константа, статичне властивість, поле чи значення перерахування). Назвою знайденого статевого значення member (a constant, static property, field, or enumeration value). |
Примітки Remarks
- Константа A constant
- Статична властивість A static property
- Поле A field
- Значення переліку Anenumeration value
Вказівка будь-якої іншої сутності коду, наприклад, нестатичної властивості, призводить до помилки часу компіляції, якщо XAML компіляції розмітки або виключення під час завантаження синтаксичного аналізу XAML. Відповідний будь-який інший код entity, така як нестатична властивість, спричиняє тривалий термін помилки, якщо XAML є маркером складеним, або XAML load-time parse exception.
Щоб x:Static посилання на статичні поля або властивості, які не входять до простору імен XAML за промовчанням для поточного документа XAML; Однак це потребує зіставлення префікса. Ви можете зробити x:Static references до статичних повідомлень або properties, які не в знімках XAML namespace for current XAML document; However, ця потреба в prefix mapping. Простір імен XAML майже завжди визначаються в кореневому елементі документа XAML. XAML namespaces є майже всі визначені на мітку елемента XAML документа.
Операції пошуку для статичних властивостей можуть виконуватися служб XAML .NET Framework та засоби читання XAML та запису XAML, якщо вони виконуються з контекстом схеми XAML за промовчанням. Використання операцій для статевих властивостей може бути зроблене за допомогою .NET Framework XAML Services і його XAML повідомлень і XAML повідомлень, коли вони беруться з меншою XAML schema context. Цей контекст схеми XAML можна використовувати для відображення середовища CLR для надання необхідних статичних значень для побудови графа об'єкта. Це XAML schéma context може використовувати CLR відкликання, щоб забезпечити необхідні статечні значення для об'єкта графа. typeName Вказати, чи є фактично XAML імені типу і не ім'я типу CLR, незважаючи на те, що це по суті тим же ім'ям, при використанні контексту схеми XAML за умовчанням або при використанні всіх існуючих платформ,заснована на середовищі CLR реалізація XAML. TypeName specify is actually a typ XAML name, не CLR type name, але вони є принципово той самий name, коли використовує додатковий XAML schéma context або коли використовує всі наявні CLR-implementation frameworks.
Синтаксис атрибутів є найпоширенішим синтаксисом, який використовується з цим розширенням розмітки. Атрибут syntax є найбільшим спільним syntax використовуваний з цим маркуванням extension. Рядкова лексема, що вказується після рядка ідентифікатора x: Static, присвоюється як значення Member відповідного класу розширення StaticExtension. string token забезпечується після x:Static identifier string is assigned as Member value of underlying StaticExtension extension class.
Існує два сценарії XAML, які є технічно можливо. Там є дві інші XAML використання, що є technically можливим. Тим не менш, ці дані про використання застосовуються рідше, оскільки вони є зайвим: However, ці usages є less common because they є unnecessarily verbose:
Синтаксис елементів. Object element syntax.
Синтаксис атрибута з очевидною властивістю елемента для рядка ініціалізації. Атрибут syntax з explicit Member property for initialization string.
У реалізації служб XAML .NET Framework обробка даного розширення розмітки визначається StaticExtension класу. У .NET Framework XAML Services implementation, handling for this markup extension is defined by the StaticExtension class.
x:Static є розширенням розмітки. is a markup extension. Всі розширення розмітки в XAML використовують < та >символів у синтаксисі їх атрибутів, який є угодою, за якою обробник XAML дізнається, що розширеннярозмітки необхідно вказати значення. All markup extensions в XAML use the < and >characters у їхньому розрізненні syntax, який є конвенцією з яким XAML processor recognizes that a markup extension must provide a value. Щоб отримати додаткові відомості про розширення розмітки, див. Markup Extensions for XAML Overview. Для більш докладної інформації про маркування extensions, viz Markup Extensions for XAML Overview.
Примітки щодо використання WPF WPF Usage Notes
Простір імен XAML за умовчанням, що використовується для програмування WPF не містить безліч корисних статичних властивостей, а більшість корисних статичних властивостей мають підтримку, таких як перетворювачі типів, які полегшують використання без необхідності. Більше XAML namespace ви будете використовувати для WPF програмування, що не має багато useful static properties, і мабуть, що useful static properties має support such as type converters that facilitate the usage without requiring . Для статичних властивостей його необхідно зіставити префікс для простору імен XAML, якщо виконується одне з наступних: Для статистичних властивостей, ви повинні map prefix for XAML namespace if one of the following is true:
Ви посилаєтеся на тип, який існує у WPF, але не є частиною простору імен XAML за промовчанням для WPF ( http://schemas.microsoft.com/winfx/2006/xaml/presentation ). Ви вважаєте, що існує в WPF, але не є частиною більшої кількості XAML namespace для WPF ( http://schemas.microsoft.com/winfx/2006/xaml/presentation ). Це досить поширений сценарій використання x: Static. Це значний загальний сценарій для використання x:Static . Наприклад, можна використовувати x:Static посилання зі зіставлення простору імен XAML для System збирання простору іменmscorlib середовища CLR, щоб посилатися на статичні властивості класу Environment класу. Для прикладу, ви можете використовувати x:Static reference with XAML namespace mapping в System CLR namespace і mscorlib assembly in order to reference the static properties of Environment class.
Посилання на тип з користувача складання. Ви вважаєте тип від custom assembly.
Посилання типом, який існує у збірці WPF, але цей тип знаходиться в межах простору імен CLR, який не був зіставлений з частиною простору імен XAML за умовчанням WPF. Ви вважаєте тип, який існує в WPF assembly, але той тип є з в CLR namespace, що не було mapped до part of the WPF default XAML namespace. Зіставлення просторів імен CLR у простір імен XAML за промовчанням для WPF виконується шляхом визначення у різних збірках WPF (Додаткові відомості про труднощі див. у розділі простору імен XAML та зіставлення просторів імен для WPF XAML). Маплювання CLR namespaces в default XAML namespace для WPF є виконаним в залежності від різних WPF assemblies (для більшої інформації про цей поняття, pozri XAML Namespaces і Namespace Mapping for WPF XAML). Неспівставлені простори імен CLR можуть існувати, якщо простір імен CLR складається головним чином з класів, які зазвичай не призначені для XAML, таких як System.Windows.Threading. No-mapped CLR namespaces може existувати, якщо CLR namespace є складним найбільш класифікаціями, які не були типово включені до XAML, так як System.Windows.Threading.
Для отримання додаткових відомостей про використання префіксів та просторів імен XAML для WPF див. розділ простору імен XAML та зіставлення просторів імен для WPF XAML.Для більш детальної інформації про те, як використовувати fixs і XAML namespaces для WPF, pozri XAML Namespaces і Namespace Mapping for WPF XAML.