Управление календарем WPF Toolkit - как предотвратить прокрутку следующего месяца?

Когда элемент управления календарем, предоставленный в наборе инструментов WPF (и включенный в .Net 4), отображается в «представлении месяца», он отображает дни из предыдущего и следующего месяца, заполняя весь календарь. Когда вы нажимаете на день предыдущего или следующего месяца, он автоматически прокручивает месяц назад или вперед. Такое поведение отталкивает моих пользователей.

Есть ли способ предотвратить эту автоматическую прокрутку?

Спасибо!


person Gus Cavalcanti    schedule 28.08.2009    source источник


Ответы (1)


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

Если вы можете сделать это в xaml, это будет выглядеть так:

 <my:Calendar Margin="50,49,48,43" Name="calendar1"  SelectionMode="MultipleRange"
     DisplayMode="Month" DisplayDateStart="2009-08-01" DisplayDateEnd="2009-08-31"/>

Но это сработает только в том случае, если вы знали эти даты во время разработки. Поэтому вы, вероятно, захотите установить даты в коде.

        calendar1.DisplayDateStart = new DateTime(2009, 08, 01);
        calendar1.DisplayDateEnd = new DateTime(2009, 08, 31);

Конечно, вам нужно будет указать первый и последний день конкретного месяца.

person epotter    schedule 28.08.2009
comment
Эпоттер спасибо. В моем календаре все еще есть стрелки «следующий/предыдущий», по которым пользователи могут перемещаться. Таким образом, он будет показывать даты для любого месяца. Нужно ли мне сохранять месяц, когда я ввожу определенный месяц, и устанавливать DisplayDateStart/End с первым и последним днями месяца? Как я могу это сделать? Спасибо! - person Gus Cavalcanti; 28.08.2009
comment
По моему опыту, когда DisplayDateStart и DisplayDateEnd установлены в текущем отображаемом месяце, стрелки есть, но они ничего не делают. На вашем компьютере календарь перемещается на другой месяц, если пользователь нажимает стрелки? - person epotter; 28.08.2009
comment
Ты прав. Я не могу использовать стрелки. Я предполагаю, что программно сбросил DisplayDateStart/End в своих собственных кнопках со стрелками. Спасибо! - person Gus Cavalcanti; 29.08.2009