DatePicker에 달려있는 아이콘을 바꿔보았습니다.
그런데 아이콘을 클릭해도 달력이 안 뜨네요.
클릭 이벤트 함수에 디버깅 걸어서 클릭할 때마다 IsDropDownOpen이 True, False 왔다갔다 하는 건 확인했습니다.
아니면 아이콘 변경하는 다른 방법이 있을까요?
<StackPanel Orientation="Horizontal" Margin="0 10 0 0">
<TextBlock Text="일자" Width="48"/>
<DatePicker x:Name="datePicker" Width="210" >
<DatePicker.Resources>
<Style TargetType="DatePickerTextBox">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<TextBox x:Name="datePickerText"
Text="{Binding Path=SelectedDate, StringFormat='yyyy-MM-dd', RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}}"
Background="{TemplateBinding Background}"
BorderThickness="0"
IsReadOnly="True">
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="Padding" Value="2"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
</Style>
</TextBox.Style>
</TextBox>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DatePicker.Resources>
<DatePicker.Template>
<ControlTemplate TargetType="DatePicker">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="184"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border BorderBrush="DarkGray" BorderThickness="1 1 0 1">
<DatePickerTextBox x:Name="datePickerText" BorderBrush="Black" BorderThickness="1 1 0 1" Grid.Column="0" Margin="2,0,0,0" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" />
</Border>
<Border Grid.Column="1" BorderBrush="DarkGray" BorderThickness="1 1 1 1">
<Button Style="{StaticResource btnIconStyle}" Width="24" Click="DatePicker_Click" >
<Image Source="icon.png"/>
</Button>
</Border>
</Grid>
</ControlTemplate>
</DatePicker.Template>
</DatePicker>
</StackPanel>
private void DatePicker_Click(object sender, RoutedEventArgs e)
{
datePicker.IsDropDownOpen = !datePicker.IsDropDownOpen;
}