2010-01-21 2 views
2

Есть ли простой способ изменить цвет текста инструмента WPF Toolkit Calendar? Я думал, что это будет просто, но кажется, что цвет жестко закодирован. Чтобы изменить его, мне придется довольно глубоко войти в шаблоны управления для Calendar и его составных частей.Изменение цвета текста в календаре WPF?

У этого есть некоторые нежелательные побочные эффекты. Вот пример: я скопировал ControlTemplate для Calendar управления и его составных частей (CalendarItem, CalendarButton, CalendarDayButton) в локальном словаре ресурсов, а затем установить стили для моего экземпляра Calendar к локальным ресурсам, например:

<toolkit:Calendar 
    Name="calendar1" 
    Style="{StaticResource Outlook2010CalendarStyle}" 
    CalendarItemStyle="{StaticResource Outlook2010CalendarItemStyle}" 
    CalendarButtonStyle="{StaticResource Outlook2010CalendarButtonStyle}" 
    CalendarDayButtonStyle="{StaticResource Outlook2010CalendarDayButtonStyle}" /> 

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

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

ответ

0

По-видимому, нет простого способа сделать это. Мне пришлось глубоко копаться в шаблоне управления - цвет текста календаря был жестко закодирован в разных точках и не был связан со стилем.

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

+0

Как это сделать? я попытался, но я не могу –

1

Не знаете, как это сделать в Visual Studio/Code, но с помощью Expression Blend это довольно просто. Просто щелкните правой кнопкой мыши Календарь, который вы перетащили в свой конструктор, нажмите «редактировать дополнительные шаблоны», выберите «Редактировать CalendarDayButtonStyle», это извлечет шаблон для вас в xaml, теперь вы можете его настроить так, как хотите.

Смежные вопросы