В Silverlight почему некоторые свойства имеют префикс x, например x: name, а некоторые нет?

В Silverlight (и я предполагаю WPF), почему свойства x: name x: fieldmodifier x: uid единственные, с префиксом x.

Я понимаю, что префикс x используется для ссылки на пространство имен XML, но есть ряд других свойств, которые не используют префикс, такой как ширина. Идентификация элемента управления является такой распространенной задачей, что кажется странным требовать префикса?

10.12.2008 09:09:11
3 ОТВЕТА
РЕШЕНИЕ

Я думаю, что ключевым моментом здесь является разница между xaml и wpf / SL.

Xaml действительно является языком инициализации объектов и полностью независим от wpf / SL. Например, вы также можете использовать xaml для определения рабочих процессов в WF. Я думаю, что это причина того, что «чистое» пространство имен Xaml отличается от пространств имен презентаций.

3
10.12.2008 10:32:41
Да, я согласен, я думаю, что это, вероятно, причина, по которой это делается именно так
alexmac 10.12.2008 10:37:12

Обновление: я извиняюсь, потому что я не очень хорошо понимаю вопрос (см. Комментарий).

В silverlight и wpf пространства имен .net связаны с пространствами имен xml. Более распространенные пространства имен .net связаны с пространством имен xml " http://schemas.microsoft.com/winfx/2006/xaml/presentation ". Затем в корневом элементе xaml есть определение пространства имен:

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

Это означает, что пространства имен .net, связанные с " http://schemas.microsoft.com/winfx/2006/xaml/presentation ", не нуждаются в префиксе.

Вот хорошее объяснение xaml и пространств имен.

2
10.12.2008 09:42:22
Спасибо, но я это понимаю. Почему бы не использовать x: name в одном из корневых пространств имен, чтобы префикс не требовался?
alexmac 10.12.2008 09:37:36
alexmac: Здесь есть 2 пространства имен, пространство имен 'xaml' и 'presentation'. Каждый элемент находится в одном из этих пространств имен, но только одно пространство имен может быть по умолчанию. Если вы измените объявление xmlns в корневом элементе, вы, вероятно, сможете выбрать любое пространство имен по умолчанию
Gareth 10.12.2008 10:21:44
Обратите внимание, что если вы переключите пространство имен 'xaml' на значение по умолчанию, каждому другому элементу и атрибуту из пространства имен 'presentation' потребуется префикс x:
Gareth 10.12.2008 10:23:20
Просто кажется странным, что часто используемая вещь, такая как свойство name, не может быть частью пространства имен, в котором находятся все остальные свойства? Я предполагаю, что это, вероятно, чтобы отделить его от пространств имен презентации и xaml, чтобы его можно было использовать для других целей
alexmac 10.12.2008 10:30:53

Один из:

  • Личное предпочтение.
  • Реализация (класс) этого проекта находится в той же сборке, что и файл XAML.
  • Какой-то дурак решил создать собственное имя для собственности.
-3
10.12.2008 10:29:08
Буду признателен за причину отрицательных голосов. В частности, причина 2 на 100% действительна. Кто-нибудь, кто проголосовал против, когда-либо проверял это? Я сомневаюсь в этом.
Jonathan C Dickinson 7.01.2009 10:39:33