DatePicker控件在IsEnabled为False时界面没有让人看上去不可用(背景为灰色等)的效果。容易让用户迷惑。
可以用下面的代码增加设置透明度的触发器来解决(XAML以及C#方式):
1 <UserControl.Resources> 2 <Style TargetType="{x:Type js:DatePickerEx}" > 3 <Style.Triggers> 4 <Trigger Property="IsEnabled" Value="False"> 5 <Setter Property="Opacity" Value="0.2"/> 6 </Trigger> 7 </Style.Triggers> 8 </Style> 9 </UserControl.Resources>
上述XAML中的资源定义用C#代码代码实现如下:
DateTimePickerEx.OnApplyTemplate()增加如下代码:
1 Trigger isEnabledTrigger = new Trigger { Property = DatePickerEx.IsEnabledProperty, Value = false }; 2 isEnabledTrigger.Setters.Add(new Setter(DatePickerEx.OpacityProperty, 0.2)); 3 Style style = new Style(typeof(DatePickerEx)); 4 style.Triggers.Add(isEnabledTrigger); 5 this.Style = style;