Partager via


Vue d’ensemble des effets bitmap

Les effets bitmap permettent aux concepteurs et aux développeurs d’appliquer des effets visuels au contenu WPF (Windows Presentation Foundation). Par exemple, les effets bitmap vous permettent d’appliquer facilement un effet de DropShadowBitmapEffect ou un effet flou à une image ou à un bouton.

Important

Dans .NET Framework 4 ou version ultérieure, 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 classe BitmapEffect est la classe Effect. Dans la plupart des cas, la classe Effect est beaucoup plus rapide.

Effets bitmap WPF

Les effets bitmap (BitmapEffect objet) sont des opérations de traitement de pixels simples. Un effet bitmap prend une BitmapSource en tant qu’entrée et produit une nouvelle BitmapSource après l’application de l’effet, comme 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.

En tant que cas spécial, dans WPF, les effets peuvent être définis en tant que propriétés sur des objets de Visual dynamiques, tels qu’un Button ou TextBox. Le traitement des pixels est appliqué et rendu au moment de l’exécution. Dans ce cas, au moment du rendu, un Visual est automatiquement converti en son équivalent BitmapSource et est alimenté 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 les visuels à être rendus uniquement par le logiciel, c’est-à-dire qu'il n'y a pas d'accélération matérielle sur les visuels lorsque des effets sont appliqués.

Remarque

Les effets bitmap WPF sont rendus en mode logiciel. Tout objet qui applique un effet sera également rendu dans le logiciel. Les performances sont détériorées le plus lors de l’utilisation d’effets Bitmap sur des visuels volumineux ou l’animation des propriétés d’un effet Bitmap. Cela ne veut pas dire que vous ne devez pas utiliser les effets bitmap de cette façon, mais vous devez utiliser la prudence et tester soigneusement pour vous assurer que vos utilisateurs obtiennent l’expérience attendue.

Remarque

Les effets bitmap WPF ne prennent pas en charge l’exécution en confiance partielle. Une application doit disposer d’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 à des visuels, tels qu’un Button, Image, DrawingVisualou UIElement, est aussi simple que la définition d’une propriété. BitmapEffect pouvez être défini sur 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 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;

Remarque

Lorsqu’un BitmapEffect est appliqué à un conteneur de disposition, tel que DockPanel ou Canvas, cela affecte l’arborescence d’élémens visuels de l’élément ou de l'objet 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 gérées. Pour obtenir des informations de référence supplémentaires concernant la création d’effets bitmap personnalisés, consultez la documentation Effet bitmap WPF non managé.

Voir aussi