Подтвердить что ты не робот

X: значение в xaml

Я вижу много утверждений вроде

<TextBox x:Name="txtInput" />

или как

<BooleanToVisibilityConverter x:Key="boolToVis" />

Почему нужен x: и то, что он дает мне.

<DockPanel.Resources>
  <c:MyData x:Key="myDataSource"/>
</DockPanel.Resources>

И здесь мы также имеем c:

Спасибо за помощь

4b9b3361

Ответ 1

Это не что иное, как ярлыки для разных пространств имен для XML. Вы можете выбрать их по своему усмотрению. Если вы посмотрите на верхние строки в вашем XAML, вы найдете строку:

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

Измените "x" на "wpf", и вы увидите, что вам нужно изменить все префиксы "x:" в вашем коде на "wpf:", чтобы скомпилировать его.

Префикс "c:" ссылается на собственный код. Скажем, у вас есть библиотека классов, которая компилируется в MyLib.dll. Эта библиотека содержит класс с именем MyData. Чтобы иметь возможность ссылаться на класс MyData, вам нужно что-то вроде:

xmlns:c="clr-namespace:MyClasses;assembly=MyLib"

в заголовке XAML.

Затем вы можете ссылаться на класс MyData в XAML с помощью c:MyData. Но вы можете полностью изменить "c" на "myfabulousclasses" или что-нибудь еще, что вам нравится.

Цель этого? Чтобы отличить классы или члены, имеющие одно и то же имя, но принадлежащие к различным dll.

Ответ 2

Префикс x:

В предыдущем примере корневого элемента префикс x: использовался для сопоставления пространства имен XAML http://schemas.microsoft.com/winfx/2006/xaml, который является выделенным пространством имен XAML который поддерживает конструкции языка XAML. Этот префикс x: используется для сопоставления этого пространства имен XAML в шаблонах для проектов. Пространство имен XAML для языка XAML содержит несколько программных конструкций, которые вы будете использовать очень часто в своем XAML. Ниже приведен список наиболее распространенных конструкций программирования x: prefix, которые вы будете использовать:

x: Ключ: Устанавливает уникальный ключ для каждого ресурса в ResourceDictionary (или аналогичные словарные понятия в других рамках). x: Ключ, вероятно, будет составлять 90% x: обычаев, которые вы увидите в типичной разметке приложения WPF.

x: Класс: указывает пространство имен CLR и имя класса для класса, который предоставляет код для страницы XAML. У вас должен быть такой класс для поддержки кода для модели программирования WPF, и поэтому вы почти всегда видите x: отображается, даже если ресурсов нет.

x: Name: Указывает имя объекта времени выполнения для экземпляра, который существует во время выполнения кода после обработки элемента объекта. В общем, вы часто будете использовать эквивалентное свойство WPF для x: Name. Такие свойства сопоставляются, в частности, с базовым свойством CLR и, следовательно, более удобны для программирования приложений, где вы часто используете код времени выполнения для поиска именованных элементов из инициализированного XAML. Чаще всего это свойство FrameworkElement.Name. Вы все равно можете использовать x: Name, если эквивалентное свойство Name на уровне Framework WPF не поддерживается в определенном типе. Это происходит в некоторых сценариях анимации.

x: Static: Включает ссылку, возвращающую статическое значение, которое не является другим свойством, совместимым с XAML.

x: Тип: Создает ссылку на тип, основанную на имени типа. Это используется для указания атрибутов, которые принимают тип, например Style.TargetType, хотя часто свойство имеет встроенное преобразование типа строки в тип таким образом, что расширение расширения разметки x: Type необязательно.

http://msdn.microsoft.com/en-us/library/ms752059.aspx http://msdn.microsoft.com/en-us/library/ms753327.aspx

Ответ 3

Это часть пространства имен . В вашем примере c: prefix используется, чтобы указать, что тег MyData принадлежит этому пространству имен. Вы можете взглянуть на следующую статью в MSDN, которая объясняет x: prefix в XAML.