是否有一种简单的方法可以更改WPF Toolkit Calendar
控件的文本颜色?我认为这很简单,但看起来颜色是硬编码的。要改变它,我将不得不深入研究Calendar
及其组成部分的控件模板。
这样做会产生一些不良副作用。下面是一个示例:我将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 :(得分:2)
不确定如何在Visual Studio / Code中执行此操作,但使用Expression Blend非常简单。只需右键单击已拖动到设计器的日历,点击“编辑其他模板”,选择编辑CalendarDayButtonStyle,这将在xaml中为您提取模板,现在您可以按照自己的方式自定义它。
答案 1 :(得分:0)
显然,没有简单的方法可以做到这一点。我不得不深入挖掘控件模板 - 日历文本颜色在许多不同的点上进行了硬编码,并没有与样式相关联。
文本颜色标记使用命名的SolidColorBrush对象,这些对象不能简单地由资源引用替换。您必须将color属性作为单独的标记分解,并使用对颜色资源的引用。