Как представить системные константы в XAML (например, double.MaxValue) - PullRequest
20 голосов
/ 05 января 2010

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

Ответы [ 2 ]

33 голосов
/ 05 января 2010

Найдено:

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

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

затем, чтобы установить свойство Maximum элемента управления MyControl в пространстве имен ctr:

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

Edit:

{x:Static sys:Double.PositiveInfinity}

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

3 голосов
/ 03 октября 2012
{x:Static sys:Double.PositiveInfinity}

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

Это потому, что double.PositiveInfinity is the default value (not set) for MaxWidth / MaxHeight`.

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

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

...