WPF чисто чувствителен к регистру?Значение "Авто" в поле ширины чувствительно к регистру? - PullRequest
1 голос
/ 21 февраля 2012

Это основной вопрос для WPF.

На первый взгляд кажется, что WPF чувствителен к регистру.Но если это должно быть правдой, то почему width = "auto" & width = "Auto" работают нормально?С другой стороны, если регистр не учитывается, то почему элементы управления не принимают ширину в качестве своего свойства?Вы можете определить ширину элемента управления только с помощью «Ширина» (заглавная W).

Сводная ссылка для ответа

Ответы [ 3 ]

5 голосов
/ 21 февраля 2012

Половина правда.

с официальной страницы обзора XAML

XAML, как правило, чувствителен к регистру. В целях разрешения типов поддержки WPF XAML чувствителен к регистру по тем же правилам, что и CLR с учетом регистра. Элементы объекта, элементы свойства и имена атрибутов должны быть указаны с использованием чувствительного регистра при сравнении по имени с базовым типом в сборке или с элементом типа. Ключевые слова и примитивы языка XAML также чувствительны к регистру. Значения не всегда чувствительны к регистру. Чувствительность к регистру значений будет зависеть от поведения преобразователя типов, связанного со свойством, которое принимает значение, или от типа значения свойства. Например, свойства, принимающие логический тип, могут принимать либо истину, либо истину в качестве эквивалентных значений, но только потому, что преобразование нативного типа синтаксического анализатора WPF XAML для строки в логический тип уже допускает их как эквиваленты.

В общем случае XAML IS чувствителен к регистру, но значения свойств не всегда, поскольку это зависит от конвертера свойств, поэтому в большинстве случаев он работает, например, где Auto совпадает с auto, хотя в некоторых особых случаях преобразователь свойств может не справиться с ними без учета регистра

Примечание: Мы говорим о собственности values здесь, а не о собственности names

1 голос
/ 21 февраля 2012

Из документации FrameworkElement.Width (выделено мной):

В дополнение к допустимым значениям Double это свойство также может иметь значение Double.NaN. Вот как вы определяете поведение авторазмера. В XAML вы устанавливаете значение в строку «Авто» (без учета регистра) , чтобы включить режим автоматического определения размера.

Итак, Auto (без учета регистра) - это просто сокращение XAML для установки для свойства Double.NaN.

0 голосов
/ 21 февраля 2012

справа от MSDN: свойство FrameworkElement.Width :

В XAML вы устанавливаете значение в строку «Авто» (без учета регистра), чтобы включить режим автоматического определения размера.

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