WPF ContentControl:如何在.cs文件中更改禁用模式下的控件不透明度?

时间:2010-02-01 16:03:29

标签: c#-3.0 wpf-controls

我有public class MyControl : ContentControl,我有控制和事件的定义与之对应。

这个控件运行正常,但是当它被禁用时,它看起来仍然像启用。我想做{if} control.isenabled = false然后control.opacity = 0.5;我该怎么办?

2 个答案:

答案 0 :(得分:1)

在WPF中,使用了触发器。

<MyControl>
<MyControl.Triggers>
   <Trigger Property="IsEnabled" Value="false">
       <Setter Property="Opacity" Value="0.5" />
   </Trigger>
</MyControl.Triggers>
</MyControl>

答案 1 :(得分:0)

正如你所说 - 这个触发器不起作用 - 我已经检查了......

但是我找到了解决方案 - 在OnApplyTemplate方法中我添加了几行:

public override void OnApplyTemplate()
{
    //...
    if (this.IsEnabled == false)
    {
        this.Opacity = 0.4;
    }
}