Partager via


Vue d'ensemble des effets bitmap

Mise à jour : novembre 2007

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.

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 à restituer les visuels dans le logiciel uniquement, c'est-à-dire qu'aucune accélération matérielle n'a lieu sur les visuels lorsque les effets sont appliqués.

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 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, DrawingVisual, ou UIElement, est aussi facile que de définir une propriété. BitmapEffect peut être défini comme objet BitmapEffect unique ou plusieurs effets peuvent être chaînés en utilisant l'objet BitmapEffectGroup.

L'exemple suivant montre comment appliquer un BitmapEffect en XAML (Extensible Application Markup Language).

<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;

Consultez Comment : créer plusieurs effets visuels pour les exemples qui indiquent comment appliquer plusieurs effets à l'aide de l'objet BitmapEffectGroup.

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 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é.

Pour un exemple d'effet bitmap personnalisé, consultez BitmapEffect personnalisé, exemple - RGBFilter. Cet exemple montre que les interfaces non managées ont dû créer un effet personnalisé, une couche d'interopérabilité managée et une application WPF à l'aide de l'effet personnalisé.

Voir aussi

Tâches

Comment : animer un effet visuel flou

Comment : animer un effet de lumière

Comment : animer un effet visuel d'ombre portée

Comment : animer un effet visuel biseauté

Comment : animer un effet visuel en relief

Concepts

Vue d'ensemble de l'acquisition d'images

Sécurité de Windows Presentation Foundation

Vue d'ensemble du rendu graphique de Windows Presentation Foundation

Optimisation des performances : graphiques 2D et acquisition d'images

Référence

BitmapEffectGroup

BitmapEffectInput

BitmapEffectCollection

Unmanaged WPF Bitmap Effect