MESCIUS InputMan for WPF 3.0J > InputMan for WPF の使い方 > テーマテンプレートを使用する > テーマテンプレートのカスタマイズ > Calendar.xaml |
Calendar.xaml では、ドロップダウンカレンダーコントロールの外観を定義します。
Calendar.xaml の内容は以下のとおりです。
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:im="clr-namespace:GrapeCity.Windows.InputMan;assembly=GrapeCity.WPF.InputMan" xmlns:imp="clr-namespace:GrapeCity.Windows.InputMan.Primitives;assembly=GrapeCity.WPF.InputMan" xmlns:sys="clr-namespace:System;assembly=mscorlib"> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/Themes/Generic/Common.xaml"/> </ResourceDictionary.MergedDictionaries> <SolidColorBrush x:Key="GcCalendar_DisabledForegroundBrush" Color="#FFADADAD"/> <SolidColorBrush x:Key="TodayBackgroundBrushKey" Color="#FFAAAAAA"/> <SolidColorBrush x:Key="TodayForegroundBrushKey" Color="#FFFFFFFF"/> <SolidColorBrush x:Key="CalendarSelectionBackgroundBrushKey" Color="#FF0A246A"/> <LinearGradientBrush x:Key="GcCalendar_GenericBorderBrush" EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFA3AEB9" Offset="0"/> <GradientStop Color="#FF8399A9" Offset="0.375"/> <GradientStop Color="#FF718597" Offset="0.375"/> <GradientStop Color="#FF617584" Offset="1"/> </LinearGradientBrush> <Style TargetType="{x:Type im:GcDropDownCalendar}" x:Key="GcDropDownCalendar_StyleKey"> <Setter Property="BorderBrush" Value="{StaticResource GcCalendar_GenericBorderBrush}"/> <Setter Property="BorderThickness" Value="1"/> <Setter Property="Background" Value="White"/> <Setter Property="Foreground" Value="Black"/> <Setter Property="Padding" Value="2"/> <Setter Property="CalendarSelectionBackground" Value="{StaticResource CalendarSelectionBackgroundBrushKey}"/> <Setter Property="TodayBackground" Value="{StaticResource TodayBackgroundBrushKey}"/> <Setter Property="TodayForeground" Value="{StaticResource TodayForegroundBrushKey}"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type im:GcDropDownCalendar}"> <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="1"> <imp:CalendarItem InnerMargin="{TemplateBinding InnerMargin}" Margin="{TemplateBinding Padding}"/> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style TargetType="im:GcDropDownCalendar" BasedOn="{StaticResource GcDropDownCalendar_StyleKey}"/> <LinearGradientBrush x:Key="HeaderBackgroundBrushKey" StartPoint="0.5,0" EndPoint="0.5,1"> <GradientStop Color="#FFE4EAF0" Offset="0"/> <GradientStop Color="#FFECF0F4" Offset="1"/> </LinearGradientBrush> <SolidColorBrush x:Key="HeaderForegroundBrushKey" Color="Black"/> <ControlTemplate x:Key="PreviousButtonTemplate" TargetType="imp:CalendarHeaderButton"> <Grid Background="{TemplateBinding Background}"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="Normal"/> <VisualState x:Name="MouseOver"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="buttonContent" Storyboard.TargetProperty="Fill" Duration="0" > <DiscreteObjectKeyFrame KeyTime="0"> <DiscreteObjectKeyFrame.Value> <SolidColorBrush Color="#FF73A9D8"/> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="Disabled"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="buttonContent" Storyboard.TargetProperty="Fill" Duration="0" > <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource GcCalendar_DisabledForegroundBrush}"/> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Path x:Name="buttonContent" Height="10" Width="6" Fill="{TemplateBinding Foreground}" Data="M288.75,232.25 L288.75,240.625 L283,236.625 z" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Center"/> </Grid> </ControlTemplate> <ControlTemplate x:Key="NextButtonTemplate" TargetType="imp:CalendarHeaderButton"> <Grid Background="{TemplateBinding Background}"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="Normal"/> <VisualState x:Name="MouseOver"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="buttonContent" Storyboard.TargetProperty="Fill" Duration="0" > <DiscreteObjectKeyFrame KeyTime="0"> <DiscreteObjectKeyFrame.Value> <SolidColorBrush Color="#FF73A9D8"/> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="Disabled"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="buttonContent" Storyboard.TargetProperty="Fill" Duration="0" > <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource GcCalendar_DisabledForegroundBrush}"/> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Path x:Name="buttonContent" Height="10" Width="6" Fill="{TemplateBinding Foreground}" Data="M282.875,231.875 L282.875,240.375 L288.625,236 z" Stretch="Fill" HorizontalAlignment="Center" VerticalAlignment="Center"/> </Grid> </ControlTemplate> <DataTemplate DataType="{x:Type imp:HeaderInfo}"> <TextBlock Text="{Binding Text}" TextWrapping="NoWrap" HorizontalAlignment="Center" VerticalAlignment="Center"/> </DataTemplate> <Style TargetType="{x:Type imp:CalendarItem}" x:Key="CalendarItem_StyleKey"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type imp:CalendarItem}"> <Grid Name="PART_Root" Background="{TemplateBinding Background}" Margin="{TemplateBinding Padding}"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="DisplayModeStates"> <VisualState x:Name="Month"> <Storyboard> <DoubleAnimation Storyboard.TargetName="PART_MonthView" Storyboard.TargetProperty="Opacity" To="1.0" Duration="0"/> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_MonthView" Storyboard.TargetProperty="IsHitTestVisible" Duration="0"> <ObjectAnimationUsingKeyFrames.KeyFrames> <DiscreteObjectKeyFrame KeyTime="0" > <DiscreteObjectKeyFrame.Value> <sys:Boolean>True</sys:Boolean> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames.KeyFrames> </ObjectAnimationUsingKeyFrames> <DoubleAnimation Storyboard.TargetName="PART_YearView" Storyboard.TargetProperty="Opacity" To="0.0" Duration="0"/> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_YearView" Storyboard.TargetProperty="IsHitTestVisible" Duration="0"> <ObjectAnimationUsingKeyFrames.KeyFrames> <DiscreteObjectKeyFrame KeyTime="0" > <DiscreteObjectKeyFrame.Value> <sys:Boolean>False</sys:Boolean> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames.KeyFrames> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="Year"> <Storyboard > <DoubleAnimation Storyboard.TargetName="PART_MonthView" Storyboard.TargetProperty="Opacity" To="0.0" Duration="0"/> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_MonthView" Storyboard.TargetProperty="IsHitTestVisible" Duration="0"> <ObjectAnimationUsingKeyFrames.KeyFrames> <DiscreteObjectKeyFrame KeyTime="0" > <DiscreteObjectKeyFrame.Value> <sys:Boolean>False</sys:Boolean> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames.KeyFrames> </ObjectAnimationUsingKeyFrames> <DoubleAnimation Storyboard.TargetName="PART_YearView" Storyboard.TargetProperty="Opacity" To="1.0" Duration="0"/> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_YearView" Storyboard.TargetProperty="IsHitTestVisible" Duration="0"> <ObjectAnimationUsingKeyFrames.KeyFrames> <DiscreteObjectKeyFrame KeyTime="0" > <DiscreteObjectKeyFrame.Value> <sys:Boolean>True</sys:Boolean> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames.KeyFrames> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="Decade"> <Storyboard> <DoubleAnimation Storyboard.TargetName="PART_MonthView" Storyboard.TargetProperty="Opacity" To="0.0" Duration="0"/> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_MonthView" Storyboard.TargetProperty="IsHitTestVisible" Duration="0"> <ObjectAnimationUsingKeyFrames.KeyFrames> <DiscreteObjectKeyFrame KeyTime="0" > <DiscreteObjectKeyFrame.Value> <sys:Boolean>False</sys:Boolean> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames.KeyFrames> </ObjectAnimationUsingKeyFrames> <DoubleAnimation Storyboard.TargetName="PART_YearView" Storyboard.TargetProperty="Opacity" To="1.0" Duration="0"/> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_YearView" Storyboard.TargetProperty="IsHitTestVisible" Duration="0"> <ObjectAnimationUsingKeyFrames.KeyFrames> <DiscreteObjectKeyFrame KeyTime="0" > <DiscreteObjectKeyFrame.Value> <sys:Boolean>True</sys:Boolean> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames.KeyFrames> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto"/> <ColumnDefinition /> <ColumnDefinition Width="auto"/> </Grid.ColumnDefinitions> <Rectangle Grid.ColumnSpan="3" Fill="{StaticResource HeaderBackgroundBrushKey}"/> <imp:CalendarHeaderButton x:Name="PreviousButton" Grid.Row="0" Grid.Column="0" Width="30" HorizontalAlignment="Left" Template="{StaticResource PreviousButtonTemplate}" Command="im:CalendarCommands.MoveToPrevious"> </imp:CalendarHeaderButton> <imp:CalendarHeaderButton Grid.Row="0" Grid.Column="1" Content="{Binding Path=HeaderInfo, RelativeSource={RelativeSource TemplatedParent}}" Command="im:CalendarCommands.ZoomOut"/> <imp:CalendarHeaderButton Grid.Row="0" Grid.Column="2" Width="30" HorizontalAlignment="Right" Template="{StaticResource NextButtonTemplate}" Command="im:CalendarCommands.MoveToNext"/> <Grid Grid.Row="1" Grid.ColumnSpan="3" x:Name="PART_MonthView" Margin="{TemplateBinding InnerMargin}"> <Grid.RowDefinitions> <RowDefinition Height="auto" /> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto" /> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> </Grid> <Grid Grid.Row="1" Grid.ColumnSpan="3" x:Name="PART_YearView" Opacity="0" Margin="{TemplateBinding InnerMargin}"> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> </Grid> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style TargetType="imp:CalendarItem" BasedOn="{StaticResource CalendarItem_StyleKey}"/> </ResourceDictionary>