WPF ContentControl: как изменить непрозрачность управления в отключенном режиме в файле .cs? - PullRequest
0 голосов
/ 01 февраля 2010

У меня есть public class MyControl : ContentControl, в котором у меня есть определения управления и соответствующие ему события.

Этот элемент управления работает нормально, но когда он отключен, он все еще выглядит как включенный. Я хотел бы сделать что-то вроде, если control.isenabled = false тогда control.opacity = 0.5; Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 01 февраля 2010

В WPF для таких вещей используются триггеры.

<MyControl>
<MyControl.Triggers>
   <Trigger Property="IsEnabled" Value="false">
       <Setter Property="Opacity" Value="0.5" />
   </Trigger>
</MyControl.Triggers>
</MyControl>
0 голосов
/ 02 февраля 2010

Как вы сказали - этот триггер не работает - я проверил ...

Но я нашел решение - в методе OnApplyTemplate я добавил несколько строк:

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