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 DropShadowBitmapEffect effet ou un effet flou à une image ou à un bouton.

Important

Dans .NET Framework 4 ou version ultérieure, la BitmapEffect classe est obsolète. Si vous essayez d’utiliser la BitmapEffect classe, vous obtiendrez une exception obsolète. L’alternative non obsolète à la BitmapEffect classe est la Effect classe. Dans la plupart des cas, la Effect classe 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 entrée et produit un nouveau BitmapSource après l’application de l’effet, tel qu’un flou ou une ombre portée. Chaque effet bitmap expose les propriétés qui peuvent contrôler les propriétés de filtrage, telles que RadiusBlurBitmapEffect.

En tant que cas spécial, dans WPF, les effets peuvent être définis en tant que propriétés sur des objets en direct Visual , 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 automatiquement converti en son BitmapSource équivalent et est alimenté comme entrée dans le BitmapEffect. La sortie remplace le comportement de rendu par défaut de l’objet Visual . C’est pourquoi BitmapEffect les objets forcent le rendu des visuels dans les logiciels uniquement, c’est-à-dire qu’aucune 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 est également rendu dans le logiciel. Les performances se dégradent le plus lors de l’utilisation des effets Bitmap sur les grands visuels ou de l’animation de propriétés d’un effet Bitmap. Cela ne signifie ne pas que ne vous ne devez pas utiliser les effets Bitmap de cette façon du tout, mais que vous devez les utiliser avec précaution et effectuer des tests approfondis pour vous assurer que vos utilisateurs obtiennent l’expérience que vous attendez.

Remarque

Les effets bitmap WPF ne prennent pas en charge l’exécution d’approbation partielle. Une application doit avoir des autorisations de confiance totale pour utiliser des effets bitmap.

Guide d’application d’un effet

BitmapEffect est une propriété sur Visual. Par conséquent, l’application d’effets à des visuels, tels qu’un Button, , ImageDrawingVisualou UIElement, est aussi simple que la définition d’une propriété. BitmapEffect peut être défini sur un objet unique BitmapEffect ou plusieurs effets peuvent être chaînés à l’aide de l’objet BitmapEffectGroup .

L’exemple suivant montre comment appliquer un BitmapEffect langage 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 code 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 conteneur de disposition est appliqué, 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 gérées. Pour des documents de référence supplémentaires pour la création d’effets bitmap personnalisés, consultez la documentation Effet bitmap WPF non managé.

Voir aussi