Как добавить пользовательский режим отображения в календарь - PullRequest
0 голосов
/ 07 марта 2012

Есть ли способ добавить новый пользовательский режим отображения в элемент управления WPF Calendar и как это сделать?

Сначала я хочу подробнее описать свою проблему.

В моем приложении мне нужен выбор даты (и времени) в одном элементе управления, чтобы выбрать сначала одну дату, а затем время для этой даты.Элемент управления (как он есть) имеет три режима отображения: Десятилетие (показывает 12 лет), Месяц (показывает 12 месяцев выбранного года) и Дни (показывает дни выбранного месяца).

ЧтоЯ хочу сделать это, добавив еще один режим отображения «Часы», который затем покажет 24 часа выбранного дня.

Так что есть много проблем.

  1. Как добавить это представление?
  2. Как избежать закрытия всплывающего окна после выбора даты?-> вместо этого он должен переключаться на часы и закрываться после выбора часа
  3. Как добавить стрелки в последнем представлении, чтобы отображать 12 часов и половинки на первой странице представления часов
  4. Какпривязать все это к базовому объекту datetime, который меня больше всего интересует, потому что он содержит то, что выбрал пользователь; -)

Надеюсь, проблема ясна.Если нет прямого способа добавить представление к существующему элементу управления Calendar, тогда любая идея, как решить эту проблему, была бы признательна.

1 Ответ

1 голос
/ 07 марта 2012

Вы можете попробовать Extended WPF toolkit , если вы ищете готовое решение.Он не делает точно то, что вы описываете, но он позволяет вам выбрать время в дополнение к дате.

Но если этого недостаточно, я почти уверен, что вам придется сделать совершенно новый компонент,В большинстве случаев рестайлинг компонента является достаточным для добавления новых функций, но в этом случае вам, скорее всего, придется переписать его с нуля.

В качестве обходного пути мы сделали отдельный компонент выбора часа,которые были показаны на стороне календаря.Это проще, чем переписать все заново.

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