Что означает (x) в x: Name в разметке Silverlight XAML? - PullRequest
1 голос
/ 26 января 2011

Мы видим некоторые свойства в TextBlock или Grid, например:

<TextBlock x:Name="TextBlock1" ...

Почему мы включаем это (х)? почему бы нам просто не сказать:

<TextBlock Name="TextBlock1" ...

Я имею в виду, мы уже в пределах определения этого TextBlock, верно?

Должна быть причина для этого.

Заранее спасибо.

Ответы [ 2 ]

6 голосов
/ 26 января 2011

В качестве дополнения к ответу Гейба, x: Name является прикрепленным свойством.Присоединенные свойства отличаются от стандартных свойств, так как они не определены (обычно) в элементе управления, который их использует.Например, элемент управления TextBlock не имеет свойства x: Name - вместо этого это свойство определяется в другом месте (в пространстве имен XAML) и «подключается» к элементу управления TextBlock для реализации его поведения.Он говорит: «Я хочу использовать вложенное свойство Name, которое можно найти в пространстве имен XAML). Конечно, чтобы усложнить ситуацию, элемент управления TextBlock имеет свойство Name (раньше оно не использовалось в Silverlight 2, поэтому вам нужно быловместо этого используйте присоединенное свойство x: Name.) Они делают то же самое.

Еще один (более понятный) пример присоединенного свойства - Grid.Row. Это свойство можно использовать в элементе управления TextBlock, чтобы указатькакая строка должна отображаться в Grid, даже если она не определена в этом элементе управления (элемент управления Grid определяет его). TextBlock просто присоединяет это свойство к себе, которое ассоциируется с этим поведением. Это изначально запутанная концепция, но очень мощный и полезный. Более подробную информацию о прикрепленных свойствах можно найти здесь: http://msdn.microsoft.com/en-us/library/cc265152(VS.95).aspx.

Надеюсь, это поможет ...

Крис

4 голосов
/ 26 января 2011

Это префикс пространства имен.

Пример 1:

Вы должны увидеть что-то вроде этого на странице xaml:

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

Который объявляет префикс x, ссылающийся на пространство имен xaml.

Пример 2:

Вы можете загрузить свои собственные элементы управления, зарегистрировав пространство имен и присвоив ему префикс.

xmlns:mycontrols="clr-namespace:MyControls.Namespace;assembly=MyAssembly"

Тогда здесь мы используем префикс для использования одного из элементов управления из этого пространства имен.

<mycontrols:MyControl />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...