我想我发现了 DatePicker
的问题在工具包中,也许你们中的一些大师可以检查一下。
问题是在设置 IsEnabled
时DatePicker
的属性(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/