DrawingContext Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Décrit du contenu visuel à l’aide des commandes draw, push et pop.
public ref class DrawingContext abstract : System::Windows::Threading::DispatcherObject, IDisposable
public abstract class DrawingContext : System.Windows.Threading.DispatcherObject, IDisposable
type DrawingContext = class
inherit DispatcherObject
interface IDisposable
Public MustInherit Class DrawingContext
Inherits DispatcherObject
Implements IDisposable
- Héritage
- Implémente
Exemples
L’exemple suivant récupère un DrawingContext à partir d’un DrawingVisual et l’utilise pour dessiner un rectangle.
// Create a DrawingVisual that contains a rectangle.
private DrawingVisual CreateDrawingVisualRectangle()
{
DrawingVisual drawingVisual = new DrawingVisual();
// Retrieve the DrawingContext in order to create new drawing content.
DrawingContext drawingContext = drawingVisual.RenderOpen();
// Create a rectangle and draw it in the DrawingContext.
Rect rect = new Rect(new System.Windows.Point(160, 100), new System.Windows.Size(320, 80));
drawingContext.DrawRectangle(System.Windows.Media.Brushes.LightBlue, (System.Windows.Media.Pen)null, rect);
// Persist the drawing content.
drawingContext.Close();
return drawingVisual;
}
' Create a DrawingVisual that contains a rectangle.
Private Function CreateDrawingVisualRectangle() As DrawingVisual
Dim drawingVisual As New DrawingVisual()
' Retrieve the DrawingContext in order to create new drawing content.
Dim drawingContext As DrawingContext = drawingVisual.RenderOpen()
' Create a rectangle and draw it in the DrawingContext.
Dim rect As New Rect(New Point(160, 100), New Size(320, 80))
drawingContext.DrawRectangle(Brushes.LightBlue, CType(Nothing, Pen), rect)
' Persist the drawing content.
drawingContext.Close()
Return drawingVisual
End Function
L’exemple suivant illustre les PushOpacitycommandes , PushEffectet Pop . est DrawingContext obtenu à partir d’un DrawingGroup et affiché à l’aide d’un Image contrôle.
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Navigation;
using System.Windows.Media.Effects;
namespace SDKSample
{
public class PushEffectExample : Page
{
public PushEffectExample()
{
Pen shapeOutlinePen = new Pen(Brushes.Black, 2);
shapeOutlinePen.Freeze();
// Create a DrawingGroup
DrawingGroup dGroup = new DrawingGroup();
// Obtain a DrawingContext from
// the DrawingGroup.
using (DrawingContext dc = dGroup.Open())
{
// Draw a rectangle at full opacity.
dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, new Rect(0, 0, 25, 25));
// Push an opacity change of 0.5.
// The opacity of each subsequent drawing will
// will be multiplied by 0.5.
dc.PushOpacity(0.5);
// This rectangle is drawn at 50% opacity.
dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, new Rect(25, 25, 25, 25));
// Blurs subsquent drawings.
dc.PushEffect(new BlurBitmapEffect(), null);
// This rectangle is blurred and drawn at 50% opacity (0.5 x 0.5).
dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, new Rect(50, 50, 25, 25));
// This rectangle is also blurred and drawn at 50% opacity.
dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, new Rect(75, 75, 25, 25));
// Stop applying the blur to subsquent drawings.
dc.Pop();
// This rectangle is drawn at 50% opacity with no blur effect.
dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, new Rect(100, 100, 25, 25));
}
// Display the drawing using an image control.
Image theImage = new Image();
DrawingImage dImageSource = new DrawingImage(dGroup);
theImage.Source = dImageSource;
this.Content = theImage;
}
}
}
Imports System.Windows.Media.Animation
Imports System.Windows.Media.Effects
Namespace SDKSample
Public Class PushEffectExample
Inherits Page
Public Sub New()
Dim shapeOutlinePen As New Pen(Brushes.Black, 2)
shapeOutlinePen.Freeze()
' Create a DrawingGroup
Dim dGroup As New DrawingGroup()
' Obtain a DrawingContext from
' the DrawingGroup.
Using dc As DrawingContext = dGroup.Open()
' Draw a rectangle at full opacity.
dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, New Rect(0, 0, 25, 25))
' Push an opacity change of 0.5.
' The opacity of each subsequent drawing will
' will be multiplied by 0.5.
dc.PushOpacity(0.5)
' This rectangle is drawn at 50% opacity.
dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, New Rect(25, 25, 25, 25))
' Blurs subsquent drawings.
dc.PushEffect(New BlurBitmapEffect(), Nothing)
' This rectangle is blurred and drawn at 50% opacity (0.5 x 0.5).
dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, New Rect(50, 50, 25, 25))
' This rectangle is also blurred and drawn at 50% opacity.
dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, New Rect(75, 75, 25, 25))
' Stop applying the blur to subsquent drawings.
dc.Pop()
' This rectangle is drawn at 50% opacity with no blur effect.
dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, New Rect(100, 100, 25, 25))
End Using
' Display the drawing using an image control.
Dim theImage As New Image()
Dim dImageSource As New DrawingImage(dGroup)
theImage.Source = dImageSource
Me.Content = theImage
End Sub
End Class
End Namespace
Remarques
Utilisez un DrawingContext pour remplir un Visual ou un avec du Drawing contenu visuel.
Bien que les DrawingContext méthodes de dessin semblent similaires aux méthodes de dessin du System.Drawing.Graphics type, elles fonctionnent très différemment : DrawingContext est utilisée avec un système graphique en mode conservé, tandis que le System.Drawing.Graphics type est utilisé avec un système graphique en mode immédiat. Lorsque vous utilisez les commandes de dessin d’un DrawingContext objet, vous stockez en fait un ensemble d’instructions de rendu (bien que le mécanisme de stockage exact dépend du type d’objet qui fournit le DrawingContext) qui sera ensuite utilisé par le système graphique ; vous ne dessinez pas à l’écran en temps réel. Pour plus d’informations sur le fonctionnement du système graphique Windows Presentation Foundation (WPF), consultez Vue d’ensemble du rendu des graphiques WPF.
Vous n’instanciez jamais directement un DrawingContext; vous pouvez toutefois acquérir un contexte de dessin à partir de certaines méthodes, telles que DrawingGroup.Open et DrawingVisual.RenderOpen.
Propriétés
Dispatcher |
Obtient le Dispatcher associé à DispatcherObject. (Hérité de DispatcherObject) |
Méthodes
CheckAccess() |
Détermine si le thread appelant a accès à ce DispatcherObject. (Hérité de DispatcherObject) |
Close() |
Ferme le DrawingContext et vide le contenu. Après cela, le DrawingContext ne peut pas être modifié. |
DisposeCore() |
Libère toutes les ressources utilisées par DrawingContext. |
DrawDrawing(Drawing) |
Dessine l'objet Drawing spécifié. |
DrawEllipse(Brush, Pen, Point, AnimationClock, Double, AnimationClock, Double, AnimationClock) |
Dessine une ellipse avec les Brush et Pen spécifiés et applique les horloges d'animation spécifiées. |
DrawEllipse(Brush, Pen, Point, Double, Double) | |
DrawGeometry(Brush, Pen, Geometry) |
Dessine le Geometry spécifié à l’aide des Brush et Pen spécifiés. |
DrawGlyphRun(Brush, GlyphRun) |
Dessine le texte spécifié. |
DrawImage(ImageSource, Rect) |
Dessine une image dans la région définie par le Rect spécifié. |
DrawImage(ImageSource, Rect, AnimationClock) |
Dessine une image dans la région définie par le Rect spécifié et applique l'horloge d'animation spécifiée. |
DrawLine(Pen, Point, AnimationClock, Point, AnimationClock) |
Dessine une ligne entre les points spécifiés à l'aide du Pen spécifié et applique les horloges d'animation spécifiées. |
DrawLine(Pen, Point, Point) |
Dessine une ligne entre les points spécifiés à l'aide du Pen spécifié. |
DrawRectangle(Brush, Pen, Rect) |
Dessine un rectangle avec les Brush et Pen spécifiés. Le stylet et le pinceau peuvent avoir la valeur |
DrawRectangle(Brush, Pen, Rect, AnimationClock) |
Dessine un rectangle avec les Brush et Pen spécifiés et applique les horloges d'animation spécifiées. |
DrawRoundedRectangle(Brush, Pen, Rect, AnimationClock, Double, AnimationClock, Double, AnimationClock) |
Dessine un rectangle arrondi avec les Brush et Pen spécifiés et applique les horloges d'animation spécifiées. |
DrawRoundedRectangle(Brush, Pen, Rect, Double, Double) |
Dessine un rectangle arrondi avec les Brush et Pen spécifiés. |
DrawText(FormattedText, Point) |
Dessine du texte mis en forme à l’emplacement spécifié. |
DrawVideo(MediaPlayer, Rect) |
Dessine une vidéo dans la région spécifiée. |
DrawVideo(MediaPlayer, Rect, AnimationClock) |
Dessine une vidéo dans la région spécifiée et applique l'horloge d'animation spécifiée. |
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
Pop() |
Extrait par un pop le dernier masque d'opacité, opacité, clip, effet ou opération de transformation qui a fait l'objet d'un push sur le contexte de dessin. |
PushClip(Geometry) |
Pousse la zone de découpage spécifiée sur le contexte de dessin. |
PushEffect(BitmapEffect, BitmapEffectInput) |
Obsolète.
Exécute un push du BitmapEffect spécifié dans le contexte de dessin. |
PushGuidelineSet(GuidelineSet) |
Exécute un push du GuidelineSet spécifié dans le contexte de dessin. |
PushOpacity(Double) |
Exécute un push du paramètre d'opacité spécifié sur le contexte de dessin. |
PushOpacity(Double, AnimationClock) |
Pousse le paramètre d'opacité spécifié sur le contexte de dessin et applique l'horloge d'animation spécifiée. |
PushOpacityMask(Brush) |
Exécute un push du masque d'opacité spécifié sur le contexte de dessin. |
PushTransform(Transform) |
Exécute un push du Transform spécifié dans le contexte de dessin. |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
VerifyAccess() |
Garantit que le thread appelant a accès à DispatcherObject. (Hérité de DispatcherObject) |
VerifyApiNonstructuralChange() |
Ce membre prend en charge l’infrastructure WPF et n’est pas destiné à être utilisé directement à partir de votre code. |
Implémentations d’interfaces explicites
IDisposable.Dispose() |
Ce membre prend en charge l’infrastructure Windows Presentation Foundation (WPF) et n’est pas destiné à être utilisé directement à partir de votre code. |