WPF DatePicker IsEnabled 属性不会改变外观

标签 wpf styles datepicker toolkit isenabled

我想我发现了 DatePicker 的问题在工具包中,也许你们中的一些大师可以检查一下。

问题是在设置 IsEnabledDatePicker 的属性(property).如果在 XAML 中设置,即使您设置了 IsEnabled,它也会保持灰色。在运行时为真。如果它开始被启用,反之亦然。

该按钮只是更改了 IsEnabled日期选择器的属性,您将看到当它启用时,样式保持灰色。

<Window x:Class="WpfApplication3.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:tk="http://schemas.microsoft.com/wpf/2008/toolkit"
    Title="Window1" Height="300" Width="300">
    <StackPanel>
        <tk:DatePicker x:Name="txtDate" IsEnabled="False"></tk:DatePicker>
        <Button Height="25" Click="Button_Click"></Button>
    </StackPanel>
</Window>

private void Button_Click(object sender, RoutedEventArgs e)
{
    txtDate.IsEnabled = !txtDate.IsEnabled;
}

最佳答案

我通过在 IsEnabledChanged 处理程序中显式设置 DatePicker 的视觉样式解决了这个问题:

private void datePicker_IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e)
{
    DatePicker datePicker = sender as DatePicker;
    if (datePicker.IsEnabled)
        VisualStateManager.GoToState(datePicker, "Normal", true);
    else
        VisualStateManager.GoToState(datePicker, "Disabled", true);
}

关于WPF DatePicker IsEnabled 属性不会改变外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2635385/

相关文章:

wpf - 表面开发: Translate/Rotate/Scale items without ScatterView

php - 提交按钮以创建带有输入文本的 HTML 文件

Angular Material 10 日期选择器(mat-datepicker)与其他输入字段不对齐

javascript - HTML 日期选择器 View

javascript - 使用带有 'grace' 的 JavaScript 取消隐藏 div 元素?

javascript - Jquery:表中附加行上的日期选择器不起作用

c# - MVVM 光 4 RTM : Where are the templates?

c# - Interop 字进程不会立即关闭

wpf - 在名称范围内找不到名称 ---在数据网格中显示动画时出错

css - 如何摆脱 JavaFX 2 中 Pane 分隔符内的拆分 Pane 分隔符中的三个小点?