Partager via


CompositionMaskBrush Classe

Définition

Peint un SpriteVisual avec un CompositionBrush avec un masque d’opacité appliqué. La source du masque d’opacité peut être n’importe quelle CompositionBrush de type CompositionColorBrush, CompositionLinearGradientBrush, CompositionSurfaceBrush, CompositionEffectBrush ou compositionNineGridBrush. Le masque d’opacité doit être spécifié en tant que CompositionSurfaceBrush.

public ref class CompositionMaskBrush sealed : CompositionBrush
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class CompositionMaskBrush final : CompositionBrush
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class CompositionMaskBrush : CompositionBrush
Public NotInheritable Class CompositionMaskBrush
Inherits CompositionBrush
Héritage
Object Platform::Object IInspectable CompositionObject CompositionBrush CompositionMaskBrush
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 Anniversary Edition (introduit dans 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v3.0)

Exemples

Appliquer un masque en forme de star à une image.

private SpriteVisual CreateCircleImage(ICompositionSurface myImageSurface, ICompositionSurface myStarMaskSurface) 
{ 
  // Create SurfaceBrush with image surface and specify stretch and alignment 
  CompositionSurfaceBrush imageBrush = _compositor.CreateSurfaceBrush(myImageSurface); 
  imageBrush.HorizontalAlignmentRatio = 0.5f; 
  imageBrush.VerticalAlignmentRatio = 0.5f; 
  imageBrush.Stretch = CompositionStretch.UniformToFill; 

  // Create surface brush with opacity mask surface and specify stretch and alignment 
  CompositionSurfaceBrush starMaskBrush = _compositor.CreateSurfaceBrush(myStarMaskSurface); 
  starMaskBrush.Stretch = CompositionStretch.Uniform; 

  // SpriteVisual to be painted with masked content 
  SpriteVisual imageVisual = _compositor.CreateSpriteVisual(); 
  imageVisual.Size = new Vector2(200, 200); 

  // Create MaskBrush 
  CompositionMaskBrush maskBrush = _compositor.CreateMaskBrush(); 
  maskBrush.Source = imageBrush; // Set source to content that is to be masked 
  maskBrush.Mask = starMaskBrush; // Set mask to content that is the opacity mask 

  imageVisual.Brush = maskBrush; // Paint SpriteVisual with MaskBrush 

  return imageVisual;           
} 

Application d’un masque d’opacité à un remplissage de couleur unie pour créer une forme ; animer la propriété transform sur le masque d’opacité CompositionSurfaceBrush pour créer une animation de floraison de couleur

private void CreateCircleMaskSprite(ICompositionSurface myCircleMaskSurface, ICompositionSurface myImageSurface)
{
  // SpriteVisual to be painted by MaskBrush
  _circleVisual = _compositor.CreateSpriteVisual();
  _circleVisual.Size = MyContainerGrid.RenderSize.ToVector2();

  // SurfaceBrush w/ image as MaskBrush.Source
  CompositionSurfaceBrush imageBrush = _compositor.CreateSurfaceBrush(myImageSurface);
  imageBrush.Stretch = CompositionStretch.UniformToFill;

  // SurfaceBrush w/ opacity mask surface as MaskBrush.Mask
  CompositionSurfaceBrush circleBrush = _compositor.CreateSurfaceBrush(myCircleMaskSurface);

  // Specify stretch and transform properties to scale and position brush for initial state
  circleBrush.Stretch = CompositionStretch.Uniform;
  circleBrush.CenterPoint = _circleVisual.Size / 2;
  circleBrush.Scale = new Vector2(0.5f);

  // Create MaskBrush
  CompositionMaskBrush maskBrush = _compositor.CreateMaskBrush();
  maskBrush.Source = imageBrush;
  maskBrush.Mask = circleBrush;
  _circleVisual.Brush = maskBrush;

  // Set SpriteVisual as child of XAML Grid
  ElementCompositionPreview.SetElementChildVisual(MyContainerGrid, _circleVisual);
}

private void BloomAnimation()
{
  // Create KeyFrame Animation to target Scale transform on SurfaceBrush 
  Vector2KeyFrameAnimation scaleAnimation = _compositor.CreateVector2KeyFrameAnimation();
  scaleAnimation.InsertKeyFrame(1.0f, new Vector2(2));
  scaleAnimation.Duration = TimeSpan.FromMilliseconds(500);

  var maskBrush = (CompositionMaskBrush)_circleVisual.Brush;
  var surfaceBrush = (CompositionSurfaceBrush) maskBrush.Mask;

  // Animate the Scale on the circle opacity mask
  surfaceBrush.StartAnimation("Scale", scaleAnimation);      
}

Application d’un masque rectangle arrondi pour créer un rectangle arrondi de couleur unie dont le rayon d’angle n’augmente pas lors du redimensionnement (utilisez CompositionNineGridBrush comme entrée dans un CompositionMaskBrush ).

private SpriteVisual CreateMaskedRoundedRectVisual(ICompositionSurface myRoundedRectMaskSurface)
{
  // ColorBrush to be set as MaskBrush.Source
  CompositionColorBrush colorBrush = _compositor.CreateColorBrush(Colors.Blue);

  // SurfaceBrush w/ opacity mask surface
  CompositionSurfaceBrush roundedRectBrush = _compositor.CreateSurfaceBrush(myRoundedRectMaskSurface);
  roundedRectBrush.Stretch = CompositionStretch.Fill; // stretch for center of nine-grid

  // NineGridBrush w/ insets on opacity mask surface
  CompositionNineGridBrush ninegridBrush = _compositor.CreateNineGridBrush();
  ninegridBrush.Source = roundedRectBrush;
  ninegridBrush.SetInsets(_cornerRadius); // the radius, in pixels, of the corner as specified on my opacity mask surface 

  // Create MaskBrush
  CompositionMaskBrush maskBrush = _compositor.CreateMaskBrush();
  maskBrush.Source = colorBrush;
  maskBrush.Mask = ninegridBrush;

  // Paint SpriteVisual with MaskBrush
  SpriteVisual sprite = _compositor.CreateSpriteVisual();
  sprite.Size = new Vector2(300, 200);
  sprite.Brush = maskBrush;
  return sprite;

}

Remarques

CompositionMaskBrush ne peut pas être défini comme paramètre source sur compositionEffectBrush. Si vous souhaitez appliquer un IGraphicsEffect à votre contenu masqué, utilisez un Objet CompositionEffectBrush avec l’effet Composite à la place.

Propriétés

Comment

Chaîne à associer à CompositionObject.

(Hérité de CompositionObject)
Compositor

Compositor utilisé pour créer cet Objet CompositionObject.

(Hérité de CompositionObject)
Dispatcher

Répartiteur pour compositionObject.

(Hérité de CompositionObject)
DispatcherQueue

Obtient le DispatcherQueue pour CompostionObject.

(Hérité de CompositionObject)
ImplicitAnimations

Collection d’animations implicites attachées à cet objet.

(Hérité de CompositionObject)
Mask

Pinceau qui contient le masque d’opacité avec lequel le contenu du pinceau source doit être masqué. Peut être de type CompositionSurfaceBrush ou CompositionNineGridBrush.

Properties

Collection de propriétés associées à CompositionObject.

(Hérité de CompositionObject)
Source

Pinceau dont le contenu doit être masqué par le masque d’opacité. Peut être de type CompositionSurfaceBrush, CompositionColorBrush ou CompositionNineGridBrush.

Méthodes

Close()

Ferme l’objet CompositionObject et libère les ressources système.

(Hérité de CompositionObject)
ConnectAnimation(String, CompositionAnimation)

Connecte et animation.

(Hérité de CompositionObject)
DisconnectAnimation(String)

Déconnecte une animation.

(Hérité de CompositionObject)
Dispose()

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.

(Hérité de CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Définit une propriété qui peut être animée.

(Hérité de CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

Connecte une animation à la propriété spécifiée de l’objet et démarre l’animation.

(Hérité de CompositionObject)
StartAnimation(String, CompositionAnimation)

Connecte une animation à la propriété spécifiée de l’objet et démarre l’animation.

(Hérité de CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

Démarre un groupe d’animations.

La méthode StartAnimationGroup sur CompositionObject vous permet de démarrer CompositionAnimationGroup. Toutes les animations du groupe seront démarrées en même temps sur l’objet.

(Hérité de CompositionObject)
StopAnimation(String)

Déconnecte une animation de la propriété spécifiée et arrête l’animation.

(Hérité de CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

Arrête un groupe d’animations.

(Hérité de CompositionObject)
TryGetAnimationController(String)

Renvoie un AnimationController pour l’animation en cours d’exécution sur la propriété spécifiée.

(Hérité de CompositionObject)

S’applique à

Voir aussi