Предотвращение выбора даты Silverlight Годы выглядят отключенными - PullRequest
2 голосов
/ 08 марта 2011

Серебристый указатель даты может уменьшаться, чтобы позволить пользователю выбирать по году, но по некоторым причинам первый и последний годы всегда выглядят отключенными. Есть ли способ предотвратить это?

Silverlight Datepicker

1 Ответ

2 голосов
/ 08 марта 2011

Это одно из многих мест, где цвет и стиль элементов жестко закодированы в их шаблоны по умолчанию. Следовательно, чтобы изменить внешний вид этих «неактивных» кнопок календаря, вам нужно определить новый шаблон.

Сначала вам нужно создать копию стиля controlsPrivitives:CalendarButton, вы можете получить копию стиля из Стили и шаблоны календаря . Поместите это в Resources для вашего пользовательского контроля или даже в вашем App.Xaml. Вам нужно будет скопировать псевдонимы пространства имен, также перечисленные в этом разделе MSDN.

Теперь у вас есть собственный неявный стиль для кнопки календаря, который вы можете изменить. Вы заметите, что шаблон в xaml имеет эту визуальную группу состояний: -

                           <vsm:VisualStateGroup x:Name="ActiveStates">
                                <vsm:VisualStateGroup.Transitions>
                                    <vsm:VisualTransition GeneratedDuration="0" />
                                </vsm:VisualStateGroup.Transitions>
                                <vsm:VisualState x:Name="Active" />
                                <vsm:VisualState x:Name="Inactive">
                                    <Storyboard>
                                        <ColorAnimation Storyboard.TargetName="Content" Storyboard.TargetProperty="(ContentControl.Foreground).(SolidColorBrush.Color)" To="#FF777777" Duration="0" />
                                    </Storyboard>
                                </vsm:VisualState>
                            </vsm:VisualStateGroup>

Те годы, которые находятся за пределами диапазона, установлены в неактивное состояние и, следовательно, имеют жестко закодированный серый цвет, который вы видите в неактивном состоянии выше. Так что настройте этот xaml по своему вкусу.

Если вы хотите использовать одинаковые кнопки дня, обратите внимание, что они имеют другой элемент управления CalendarDayButton, поэтому вам нужно будет выполнить то же упражнение для стиля по умолчанию.

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