Partager via


DrawingContext Classe

Définition

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
DrawingContext
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)

Dessine une ellipse avec les Brush et Pen spécifiés.

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

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.

S’applique à

Voir aussi