我修改WPF Calendar控件的控件模板來改變文字的顏色和控制的上一頁和下一頁箭頭。我想將顏色設置爲名爲MyTextBrush
的本地SolidColorBrush資源。WPF:將指定的顏色設置爲資源?
的上一頁和下一頁按鈕具有單獨的控制模板,並且每個吸取用於其按鈕的箭頭a Path對象。下面是上一頁按鈕相關的標記:
<Path Margin="14,-6,0,0" Height="10" Width="6" VerticalAlignment="Center" HorizontalAlignment="Left" Stretch="Fill" Data="M288.75,232.25 L288.75,240.625 L283,236.625 z">
<Path.Fill>
<SolidColorBrush x:Name="TextColor" Color="#FF333333" />
</Path.Fill>
</Path>
注意顏色命名TextColor
,使用x:Name
財產。
這裏是我的問題:需要x:Name
屬性 - 如果它缺少WPF拋出異常。這意味着我不能簡單地給MyTextBrush
資源的引用更換整個刷,因爲我將失去x:Name
值。所以,我怎麼引用MyTextBrush
,同時仍保留了x:Name
屬性爲刷在這個特殊的控制模板?
感謝您的幫助。
爲什麼WPF在刷子上需要一個x:Name?名稱通常不是必需的:您是從觸發器或動畫還是代碼隱藏引用它?如果可以的話,你能說出什麼是什麼以及你想用刷子做什麼? – itowlson 2010-01-24 23:02:24
它確實讓我感到吃驚。 WPF日曆控件(WPF工具包,2009年6月)有點破解。日曆文本顏色是硬編碼在三個不同的控制模板中,通常在控制模板中完成的一些事情是在代碼中完成的,等等。隨着代碼的味道,它真的很臭。 – 2010-01-25 00:15:25
我認爲他們這樣做的原因是你不能在資源字典中輕鬆地製作某些東西,因此他們不得不烘焙「TextColor」 – Schneider 2010-01-25 02:48:02