3

カレンダーの日のタイトルの前景色を変更しようとしています。標準の.net 4.0 Datepickerを使用しています。カレンダーは Datepicker に組み込まれています。

リソースファイルに次のコードがあります。しかし、それは機能しません。

<Style  TargetType="{x:Type CalendarItem}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type CalendarItem}">
                <ControlTemplate.Resources>
                    <DataTemplate x:Key="DayTitleTemplate">
                        <TextBlock
                                            FontWeight="Bold" 
                                            FontFamily="Verdana" 
                                            FontSize="9.5" 
                                            Foreground="Red" 
                                            HorizontalAlignment="Center"
                                            Text="{Binding}"
                                            Margin="0,6,0,6"
                                            VerticalAlignment="Center"/>
                    </DataTemplate>
                </ControlTemplate.Resources>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

ここで私が見逃しているものを見るのを手伝ってくれる人はいますか? ありがとう、

4

2 に答える 2

1

残念ながら、フォアグラウンド プロパティは既定のコントロール テンプレートにハードコードされています。それを変更する方法は、テンプレートをコピーして変更することです。

<Style x:Key="CalendarItemStyle" TargetType="{x:Type CalendarItem}">
    <Setter Property="Margin" Value="0,3,0,3" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type CalendarItem}">
                    <ControlTemplate.Resources>
                        <DataTemplate x:Key="{x:Static CalendarItem.DayTitleTemplateResourceKey}">
                            <TextBlock 
                                <!-- Day header color here -->
                                Foreground="Red"
                                FontWeight="Bold"
                                FontSize="9.5"
                                FontFamily="Verdana"
                                Margin="0,6,0,6"
                                Text="{Binding}"
                                HorizontalAlignment="Center"
                                VerticalAlignment="Center" />
                        </DataTemplate>

また、個々のコントロールのプロパティをForeground="{TemplateBinding}"設定して色を変更できるように、を使用することもできます。Foreground

于 2013-08-02T20:30:56.717 に答える
0

このMSDN Articleを見てください。これは、WPF Calendar コントロールのカスタマイズに関するもので、DatePickerコントロールに関するこの抜粋があります。

リンクから(強調鉱山):

ただし、スタンドアロンの Calendar コントロールに適用できるすべてのスタイルとテンプレートは、DatePicker のドロップダウンから呼び出される Calendar コントロールにも適用できます。DatePicker コントロールには、Style 型の CalendarStyle という名前のプロパティがあり、このプロパティに設定する Style オブジェクトには、Calendar で定義された任意のプロパティ (CalendarItemStyle、CalendarButtonStyle、CalendarDayButtonStyle プロパティなど) のセッターを含めることができます

DatePickerテンプレートについては、このリンクを参照してください。

于 2013-08-03T04:13:33.913 に答える