c# - 如何更改 DatePicker 内部文本框的背景颜色

标签 c# wpf datepicker

我想做的是改变Background来自 TextBoxDatePicker 里面.

我试图通过添加 <Style TargetType="{x:Type DatePickerTextBox}" 让它工作但没有成功,因为我已经有其他 <Style>那里。

这是我的 <DatePicker> :

                    <DatePicker Grid.Column="1" Grid.Row="0"
                                VerticalContentAlignment="Center" MinHeight="20">
                       <DatePicker.SelectedDate>
                            <Binding Path="ViewModel.Value" UpdateSourceTrigger="PropertyChanged" 
                                     RelativeSource="{RelativeSource TemplatedParent}"/>
                        </DatePicker.SelectedDate>

                        <DatePicker.Style>
                            <Style TargetType="{x:Type DatePicker}">
                                <Setter Property="Background" Value="White"/>
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent}, 
                                        Path=ViewModel.IsDirty}" Value="true">
                                        <Setter Property="Background" Value="LightYellow"/>
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent}, 
                                        Path=ViewModel.IsInvalid}" Value="true">
                                        <Setter Property="BorderBrush" Value="Red"/>
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>
                        </DatePicker.Style>
                    </DatePicker>

所以当IsDirty被触发 Background得到 LightYellow但内部 TextBox Background还是White .

如何更改此 Background还有吗?

最佳答案

在您的 Style 中,只需添加所需的 DatePickerTextBox 样式作为资源:

<Style TargetType="{x:Type DatePicker}">
    <Style.Resources>
        <Style TargetType="DatePickerTextBox">
            <Setter Property="Background" Value="Transparent"/>
        </Style>
    </Style.Resources>
    <Setter Property="Background" Value="White"/>
    <Style.Triggers>
        <!-- your triggers here -->
    </Style.Triggers>
</Style>

关于c# - 如何更改 DatePicker 内部文本框的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47220431/

相关文章:

c# - Selenium RC/Nunit/Firefox - 单击时浏览器崩溃

android - 在 Android 上的 DatePicker 中显示选定的日期范围(+ 作为标题)

javascript - 如何使用angularjs仅在数据库中的日期选择器中显示日期

ios - 在特定日期重复 UILocalNotification

c# - 如何在 WPF DataGrid 中突出显示一行并强制刷新行/单元格?

wpf - WPF 中的设计时数据

c# - 如何解决错误 "Input string is not in correct format"

c# - 无法加载文件或程序集 GalaSoft.MvvmLight

c# - Char转int得到ASCII

WPF - 从绑定(bind)路径获取属性值