2010-01-21 75 views
2

有沒有簡單的方法來改變WPF Toolkit Calendar控件的文本顏色?我認爲這很簡單,但看起來顏色是硬編碼的。要改變它,我將不得不深入Calendar及其組成部分的控制模板。更改WPF日曆上的文字顏色?

這樣做有一些不良的副作用。下面是一個例子:我複製了ControlTemplateCalendar控制及其零件(CalendarItemCalendarButtonCalendarDayButton)到本地資源字典,然後設置樣式爲我的Calendar到本地資源的情況下,像這樣:

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

不幸的是,當我設置CalendarDayButtonStyle時,我失去了控件通常在開始之前的幾天和月底之後的「變灰」效果。所以,看起來我將不得不在我自己的標記或代碼中恢復這種效果。

在我深入兔子洞之前,我想我會停下來做一個真實的檢查。我是否真的需要這麼做,只是爲了改變Calendar控件上的文字顏色?有沒有更簡單的方法,我失蹤了?有沒有人派生出一個自定義控件,允許對文本顏色進行簡單的更改?謝謝你的幫助。

回答

0

顯然,沒有簡單的方法來做到這一點。我不得不深入挖掘控件模板 - 日曆文本顏色在許多不同的點上被硬編碼,並且沒有鏈接到樣式。

文本顏色標記使用名爲SolidColorBrush對象,不能簡單地將其替換爲資源引用。您必須將顏色屬性作爲單獨的標記拆分並使用對顏色資源的引用。

+0

該怎麼做?我嘗試過但我不能 – 2017-08-08 08:47:25

1

不知道如何在Visual Studio/Code中做到這一點,但使用Expression Blend相當簡單。只需右鍵單擊已拖入設計器的日曆,點擊「編輯其他模板」,選擇編輯CalendarDayButtonStyle,這將在xaml中爲您提取模板,現在您可以以任何您想要的方式自定義它。