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

Как представить системные константы в XAML (например, double.MaxValue)

Что такое xaml эквивалент MyProperty = double.MaxValue? Боюсь, мне нужно использовать что-то вроде MyProperty="{x:Static sys:Int32.MaxValue}", но не уверен, и не могу найти эквивалент для double. Спасибо.

4b9b3361

Ответ 1

Найдено:

добавьте это в раздел namespaces элемента управления для доступа к Системной библиотеке:

... xmlns:sys="clr-namespace:System;assembly=mscorlib" ...

то для установки Максимального свойства элемента управления MyControl в пространстве имен ctr:

<ctr:MyControl Maximum="{x:Static sys:Double.MaxValue}"/>

Edit:

{x:Static sys:Double.PositiveInfinity}

тоже работает, но я подозреваю, что использовать его в этом контексте нецелесообразно, он, похоже, зарезервирован для оценки, например if (x==Double.PositiveInfinity). Эксперты могут разработать...

Ответ 2

{x:Static sys:Double.PositiveInfinity}

может быть полезна, если вы скажете некоторую настройку управления MaxWidth на какое-то значение, и вы хотите reset ее через XAML у какого-то предка

Это связано с тем, что double.PositiveInfinity is the default value (not set) for MaxWidth / MaxHeight`.

Я нашел это полезным в Silverlight Media Framework, чтобы скрыть/показать область видео (просто слушать аудио). См. Соответствующие примечания в нижней части:

Как скрыть область видео в медиаплеере Silverlight