Visual Basic, VB .NET, ASP, Active X, Access, SQL Server

WPF: behavior para aplicar efeito grayscale a controles desabilitados

A partir da introdução da classe Behavior na plataforma .NET, podemos usar este recurso combinado com a biblioteca GrayscaleEffect.dll de Anders Bursjöö para criar um recurso utilizável nos nossos formulários e nos livrarmos do trabalho de criar imagens duplicadas para refletir o estado habilitado e desabilitado dos elementos da interface gráfica.

Aplicando o behavior ApplyGrayScaleBehavior à declaração XAML de um controle, quando sua propriedade IsEnabled muda para False, toda a imagem do controle se tornará acinzentada. Ao retornar IsEnabled para True, a imagem normal é restaurada.

Para usar este behavior, basta referenciar às bibliotecas ApplyGrayScaleBehaviorLib.dll e System.Windows.Interactivity.dll em seu projeto, adicionar ao formulário as informações dos namespaces:

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:bh="clr-namespace:ApplyGrayScaleBehavior;assembly=ApplyGrayScaleBehaviorLib"

e aplicar o behavior aos controles que deseja assumirem este comportamento com o código abaixo:

<i:Interaction.Behaviors>
    <bh:ApplyGrayScaleBehavior></bh:ApplyGrayScaleBehavior>
</i:Interaction.Behaviors>

Veja mais no projeto de criação da classe ApplyGrayScaleBehavior e no exemplo de uso deste behavior que podem ser baixados daqui: UsingApplyGrayScaleBehavior.rar . Nestes projetos, foi usada uma versão da biblioteca GrayScaleEffects.dll compilada para a plataforma 4.0 Client Profile, mas no site do projeto de Anders Bursjöö há uma versão para a plataforma 3.5.1.