Vue d'ensemble des effets bitmap
Les effets bitmap permettent aux concepteurs et développeurs d'appliquer des effets visuels au contenu Windows Presentation Foundation (WPF) rendu. Par exemple, les effets bitmap vous permettent d'appliquer facilement un effet DropShadowBitmapEffect ou un effet flou à une image ou un bouton.
Important |
---|
Dans le .NET Framework 4 et les versions ultérieures, la classe BitmapEffect est obsolète.Si vous essayez d'utiliser la classe BitmapEffect, vous obtiendrez une exception obsolète.L'alternative non obsolète à la classeBitmapEffect est la classe Effect.Dans la plupart des cas, la classe Effect est nettement plus rapide. |
Cette rubrique comprend les sections suivantes.
- Effets bitmap WPF
- Comment appliquer un effet
- Création d'effets personnalisés
- Rubriques connexes
Effets bitmap WPF
Les effets bitmap (objet BitmapEffect) sont des opérations de traitement de pixels simples. Un effet bitmap prend un BitmapSource comme entrée et produit un nouveau BitmapSource après avoir appliqué l'effet, tel qu'un flou ou une ombre portée. Chaque effet bitmap expose des propriétés qui peuvent contrôler les propriétés de filtrage, telles que Radius de BlurBitmapEffect.
Dans certains cas, dans WPF, les effets peuvent être définis comme propriétés sur des objets Visual actifs, tels qu'un Button ou TextBox. Le traitement de pixels est appliqué et restitué au moment de l'exécution. Dans ce cas, au moment du rendu, un Visual est converti automatiquement à son BitmapSource équivalent et acheminé comme entrée au BitmapEffect. La sortie remplace le comportement de rendu par défaut de l'objet Visual. C'est pourquoi les objets BitmapEffect forcent le rendu des visuels uniquement dans les logiciels, c.-à-d. sans aucune accélération matérielle sur les visuels lorsque des effets sont appliqués.
BlurBitmapEffect simule un objet qui s'affiche hors du focus.
OuterGlowBitmapEffect crée un halo de couleur autour du périmètre d'un objet.
DropShadowBitmapEffect crée une ombre derrière un objet.
BevelBitmapEffect crée un biseau qui déclenche la surface d'une image d'après une courbe spécifiée.
EmbossBitmapEffect crée un placage de relief pour un Visual afin de donner une impression de profondeur et de texture comme avec une source de lumière artificielle.
Remarque |
---|
Les effets bitmap WPF sont restitués en mode logiciel.Tout objet qui applique un effet est également restitué dans le logiciel.Les performances sont les plus dégradées lors de l'utilisation d'effets bitmap sur de grands visuels ou de l'animation de propriétés d'un effet bitmap.Il ne s'agit pas de vous dire de ne pas utiliser du tout les effets bitmap de cette façon, mais vous devez être prudent et effectuer des tests approfondis pour garantir que vos utilisateurs obtiennent l'expérience que vous attendez. |
Remarque |
---|
Les effets bitmap de WPF ne prennent pas en charge l'exécution de confiance partielle.Une application doit avoir des autorisations de confiance totale pour utiliser des effets bitmap. |
Comment appliquer un effet
BitmapEffect est une propriété sur Visual. Par conséquent, l'application d'effets aux visuels, tels qu'un Button, Image, DrawingVisualou UIElement, est aussi simple que la définition d'une propriété. BitmapEffect peut avoir pour valeur un objet BitmapEffect unique ou plusieurs effets peuvent être chaînés à l'aide de l'objet BitmapEffectGroup.
L'exemple suivant montre comment appliquer un BitmapEffect en Extensible Application Markup Language (XAML).
<Button Width="200">You Can't Read This!
<Button.BitmapEffect>
<!-- <BitmapEffectGroup> would go here if you wanted to apply more
then one effect to the Button. However, in this example only
one effect is being applied so BitmapEffectGroup does not need
to be included. -->
<!-- The larger the Radius, the more blurring. The default range is 20.
In addition, the KernelType is set to a box kernel. A box kernel
creates less disruption (less blur) then the default Gaussian kernel. -->
<BlurBitmapEffect Radius="10" KernelType="Box" />
</Button.BitmapEffect>
</Button>
L'exemple suivant montre comment appliquer un BitmapEffect dans le code.
// Get a reference to the Button.
Button myButton = (Button)sender;
// Initialize a new BlurBitmapEffect that will be applied
// to the Button.
BlurBitmapEffect myBlurEffect = new BlurBitmapEffect();
// Set the Radius property of the blur. This determines how
// blurry the effect will be. The larger the radius, the more
// blurring.
myBlurEffect.Radius = 10;
// Set the KernelType property of the blur. A KernalType of "Box"
// creates less blur than the Gaussian kernal type.
myBlurEffect.KernelType = KernelType.Box;
// Apply the bitmap effect to the Button.
myButton.BitmapEffect = myBlurEffect;
Remarque |
---|
Lorsqu'un BitmapEffect est appliqué à un conteneur de disposition, tel que DockPanel ou Canvas, l'effet est appliqué à l'arborescence visuelle de l'élément ou du visuel, y compris tous ses éléments enfants. |
Création d'effets personnalisés
WPF fournit également des interfaces non managées pour créer des effets personnalisés qui peuvent être utilisés dans les applications WPF managées. Pour obtenir une documentation de référence supplémentaire sur la création d'effets bitmap personnalisés, consultez la documentation Effet de bitmap WPF non managé.
Voir aussi
Référence
Concepts
Vue d'ensemble de la création d'images
Vue d'ensemble du rendu graphique de WPF
Optimisation des performances : graphiques 2D et acquisition d'images