Что такое xmlns в каждом файле WPF?

43
задан JaredPar 11 March 2009 в 00:54
поделиться

4 ответа

xmlns является XML, не обязательно XAML, создайте, который определяет пространство имен, в котором можно разрешить xml имена элементов. Поскольку это определяется без спецификатора, это определяет пространство имен по умолчанию, которым должно быть разрешено имя элемента XML.

В XAML Вы обычно видите следующую запись. Это определяет пространство имен по умолчанию, чтобы быть по существу WPF, и все имена элементов XML следовательно разрешены как элементы WPF.

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

также распространено видеть пространства имен не по умолчанию, такие как следующее.

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Это определяет квалифицированное пространство имен для определенных элементов XAML. Если Вы хотите, чтобы элемент или название атрибута были разрешены в этом пространстве имен, необходимо квалифицировать его с x. Например

<StackPanel x:Name="foo" />

в этом определении существует 2 разрешения имени.

  1. StackPanel - поскольку это - неполное имя, это будет разрешено в пространстве имен по умолчанию, которое является WPF
  2. x:Name - Имя квалифицировано с x и будет разрешено в рамках документа XAML.
53
ответ дан JaredPar 23 September 2019 в 12:35
поделиться

Можно также отобразить несколько пространств имен CLR вместе в одно пространство имен XML путем добавления XmlnsDefinitionAttribute к блокам. Это - то, что команда WPF сделала путем отображения большого количества пространств имен под Системой. Windows как это:

[XmlnsDefinitionAttribute(
    "http://schemas.microsoft.com/winfx/2006/xaml/presentation", 
    "System.Windows.Controls")]
[XmlnsDefinitionAttribute(
    "http://schemas.microsoft.com/winfx/2006/xaml/presentation", 
    "System.Windows.Ink")]

Этот синтаксис может упростить Ваш XAML, но бояться иметь классы с тем же именем в пространствах имен CLR, которые Вы объединяете вместе.

10
ответ дан Anthony Brien 23 September 2019 в 12:35
поделиться

Как взято от MSDN корневой элемент также содержит атрибуты xmlns и xmlns:x. Эти атрибуты указывают к процессору XAML, какие пространства имен XML содержат определения элемента для элементов, на которые сошлется разметка. Атрибут xmlns конкретно указывает на пространство имен XML по умолчанию.

Это использование xmlns для определения объема для использования и отображения согласовывается со спецификацией XML 1.0.

Hope это помогает.

6
ответ дан Bryan Bailliache 23 September 2019 в 12:35
поделиться

И Вы используете xmlns для получения ссылки на собственные пространства имен в XAML также. Одна из первых вещей, которые я делаю при создании нового проекта WPF, состоит в том, чтобы добавить ссылку на пространство имен проекта:

xmlns:local="clr-namespace:MyWpfProject"

Теперь у меня есть доступ к любым классам, которые я могу создать в рамках своего проекта (как IValueConverters и DataTemplateSelectors) при помощи "локального": префикс

<local:BooleanToColorConverter x:Key="booleanToColorConverter" DefaultBrush="Green" HighlightBrush="Red" />

, Конечно, Вы не должны использовать "локальный", можно назвать его вообще, Вы хотите. И можно добавить ссылки на любое другое пространство имен, Вам нужен тот же путь.

22
ответ дан Joel Cochran 23 September 2019 в 12:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: