Windows Presentation Foundation è un framework dalle straordinarie potenzialità che oltre a lavorare in vettoriale, sfruttare la GPU, consentire trasformazioni e animazioni, permette di applicare effetti su qualsiasi elemento. Questi effetti sono rappresentati dalle classi BitmapEffect e derivate ed è esposta dalla omonima proprietà sul tipo UIElement.
In WPF sono già definiti i seguenti effetti:
- BlurBitmapEffect: applica un effetto sfuocato;
- OuterGlowBitmapEffect: crea degli aloni intorno all'oggetto;
- DropShadowBitmapEffect: applica un'ombra sull'oggetto;
- BevelBitmapEffect: applica un effetto di smussatura interna o esterna;
- EmbossBitmapEffect: applica un effetto di pietrificazione.
Un esempio rende più delle parole; ecco quindi del markup:
<StackPanel Margin="50">
<Image Source="http://gui.winfxitalia.com/images/winfxitalia.gif" Stretch="None">
<Image.BitmapEffect>
<BlurBitmapEffect Radius="4" />
</Image.BitmapEffect>
</Image>
<Image Margin="10" Source="http://gui.winfxitalia.com/images/winfxitalia.gif" Stretch="None">
<Image.BitmapEffect>
<OuterGlowBitmapEffect GlowColor="Red" GlowSize="10" Opacity="0.4" Noise="0.4" />
</Image.BitmapEffect>
</Image>
<Image Margin="10" Source="http://gui.aspitalia.com/images/aspitalia.gif" Stretch="None">
<Image.BitmapEffect>
<DropShadowBitmapEffect Color="Blue" Direction="360" ShadowDepth="25" Softness="1" Opacity="0.5"/>
</Image.BitmapEffect>
</Image>
<Image Margin="10" Source="http://gui.aspitalia.com/images/aspitalia.gif" Stretch="None">
<Image.BitmapEffect>
<BevelBitmapEffect BevelWidth="15" EdgeProfile="CurvedOut" LightAngle="320" Relief="0.4" Smoothness="0.3"/>
</Image.BitmapEffect>
</Image>
<Image Margin="10" Source="http://gui.aspitalia.com/images/aspitalia.gif" Stretch="None">
<Image.BitmapEffect>
<EmbossBitmapEffect Relief="1" LightAngle="100" />
</Image.BitmapEffect>
</Image>
</StackPanel>E questo è il risultato:

Occorre prestare attenzione al fatto che i BitmapEffect sono trasformazioni scritte con codice unmanaged che caricano sulla CPU e sono applicate a bitmap e cioè a immagini vere e proprie. Ogni volta che l'UIElement al quale è applicato l'effetto, cambia, l'operazione viene nuovamente eseguita. Si deduce quindi che l'uso dei BitmapEffect deve essere moderato. Nel caso si vogliano applicare più effetti viene in aiuto BitmapEffectGroup:
<Image Margin="10" Source="http://gui.aspitalia.com/images/aspitalia.gif" Stretch="None">
<Image.BitmapEffect>
<BitmapEffectGroup>
<BlurBitmapEffect Radius="2" />
<DropShadowBitmapEffect Color="Black" Direction="320" ShadowDepth="30" Softness="1" />
</BitmapEffectGroup>
</Image.BitmapEffect>
</Image> Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Per inserire un commento, devi registrarti alla nostra community.






Stampa
Download 


