DrawingContext Classe

Définition

Décrit du contenu visuel à l’aide des commandes draw, push et pop.Describes visual content using draw, push, and pop commands.

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 de DrawingVisual et l’utilise pour dessiner un rectangle.The following example retrieves a DrawingContext from a DrawingVisual and uses it to draw a 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 PushOpacity PushEffect commandes, et Pop .The next example demonstrates the PushOpacity, PushEffect, and Pop commands. DrawingContextEst obtenu à partir d’un DrawingGroup et affiché à l’aide d’un Image contrôle.The DrawingContext is obtained from a DrawingGroup and displayed using an Image control.

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 Drawing avec du contenu visuel.Use a DrawingContext to populate a Visual or a Drawing with visual content.

Bien que les DrawingContext méthodes de dessin ressemblent aux méthodes Draw du System.Drawing.Graphics type, elles fonctionnent très différemment : DrawingContext est utilisé avec un système graphique en mode Retained, tandis que le System.Drawing.Graphics type est utilisé avec un système graphique en mode immédiat.Although the DrawingContext draw methods appear similar to the draw methods of the System.Drawing.Graphics type, they function very differently: DrawingContext is used with a retained mode graphics system, while the System.Drawing.Graphics type is used with an immediate mode graphics system. Lorsque vous utilisez les DrawingContext commandes de dessin d’un objet, vous stockez en fait un ensemble d’instructions de rendu (bien que le mécanisme de stockage exact dépende du type d’objet qui fournit le DrawingContext ) qui sera utilisé par la suite par le système graphique. vous ne dessinez pas sur l’écran en temps réel.When you use a DrawingContext object's draw commands, you are actually storing a set of rendering instructions (although the exact storage mechanism depends on the type of object that supplies the DrawingContext) that will later be used by the graphics system; you are not drawing to the screen in real-time. Pour plus d’informations sur le fonctionnement du système graphique Windows Presentation Foundation (WPF), consultez vue d’ensemble du rendu graphique WPF.For more information about how the Windows Presentation Foundation (WPF) graphics system works, see WPF Graphics Rendering Overview.

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 .You never directly instantiate a DrawingContext; you can, however, acquire a drawing context from certain methods, such as DrawingGroup.Open and DrawingVisual.RenderOpen.

Propriétés

Dispatcher

Obtient le Dispatcher associé à DispatcherObject.Gets the Dispatcher this DispatcherObject is associated with.

(Hérité de DispatcherObject)

Méthodes

CheckAccess()

Détermine si le thread appelant a accès à ce DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

(Hérité de DispatcherObject)
Close()

Ferme le DrawingContext et vide le contenu.Closes the DrawingContext and flushes the content. Après cela, le DrawingContext ne peut pas être modifié.Afterward, the DrawingContext cannot be modified.

DisposeCore()

Libère toutes les ressources utilisées par DrawingContext.Releases all resources used by the DrawingContext.

DrawDrawing(Drawing)

Dessine l'objet Drawing spécifié.Draws the specified Drawing object.

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.Draws an ellipse with the specified Brush and Pen and applies the specified animation clocks.

DrawEllipse(Brush, Pen, Point, Double, Double)

Dessine une ellipse avec les Brush et Pen spécifiés.Draws an ellipse with the specified Brush and Pen.

DrawGeometry(Brush, Pen, Geometry)

Dessine le Geometry spécifié à l’aide des Brush et Pen spécifiés.Draws the specified Geometry using the specified Brush and Pen.

DrawGlyphRun(Brush, GlyphRun)

Dessine le texte spécifié.Draws the specified text.

DrawImage(ImageSource, Rect)

Dessine une image dans la région définie par le Rect spécifié.Draws an image into the region defined by the specified Rect.

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.Draws an image into the region defined by the specified Rect and applies the specified animation clock.

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.Draws a line between the specified points using the specified Pen and applies the specified animation clocks.

DrawLine(Pen, Point, Point)

Dessine une ligne entre les points spécifiés à l'aide du Pen spécifié.Draws a line between the specified points using the specified Pen.

DrawRectangle(Brush, Pen, Rect)

Dessine un rectangle avec les Brush et Pen spécifiés.Draws a rectangle with the specified Brush and Pen. Le stylet et le pinceau peuvent avoir la valeur null.The pen and the brush can be 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.Draws a rectangle with the specified Brush and Pen and applies the specified animation clocks.

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.Draws a rounded rectangle with the specified Brush and Pen and applies the specified animation clocks.

DrawRoundedRectangle(Brush, Pen, Rect, Double, Double)

Dessine un rectangle arrondi avec les Brush et Pen spécifiés.Draws a rounded rectangle with the specified Brush and Pen.

DrawText(FormattedText, Point)

Dessine du texte mis en forme à l’emplacement spécifié.Draws formatted text at the specified location.

DrawVideo(MediaPlayer, Rect)

Dessine une vidéo dans la région spécifiée.Draws a video into the specified region.

DrawVideo(MediaPlayer, Rect, AnimationClock)

Dessine une vidéo dans la région spécifiée et applique l'horloge d'animation spécifiée.Draws a video into the specified region and applies the specified animation clock.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(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.Pops the last opacity mask, opacity, clip, effect, or transform operation that was pushed onto the drawing context.

PushClip(Geometry)

Pousse la zone de découpage spécifiée sur le contexte de dessin.Pushes the specified clip region onto the drawing context.

PushEffect(BitmapEffect, BitmapEffectInput)
Obsolète.

Exécute un push du BitmapEffect spécifié dans le contexte de dessin.Pushes the specified BitmapEffect onto the drawing context.

PushGuidelineSet(GuidelineSet)

Exécute un push du GuidelineSet spécifié dans le contexte de dessin.Pushes the specified GuidelineSet onto the drawing context.

PushOpacity(Double)

Exécute un push du paramètre d'opacité spécifié sur le contexte de dessin.Pushes the specified opacity setting onto the drawing context.

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.Pushes the specified opacity setting onto the drawing context and applies the specified animation clock.

PushOpacityMask(Brush)

Exécute un push du masque d'opacité spécifié sur le contexte de dessin.Pushes the specified opacity mask onto the drawing context.

PushTransform(Transform)

Exécute un push du Transform spécifié dans le contexte de dessin.Pushes the specified Transform onto the drawing context.

ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Hérité de Object)
VerifyAccess()

Garantit que le thread appelant a accès à DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

(Hérité de DispatcherObject)
VerifyApiNonstructuralChange()

Ce membre prend en charge l’infrastructure WPFWPF et n’est pas destiné à être directement utilisé à partir de votre code.This member supports the WPFWPF infrastructure and is not intended to be used directly from your code.

Implémentations d’interfaces explicites

IDisposable.Dispose()

Ce membre prend en charge l’infrastructure Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) et n’est pas destiné à être directement utilisé à partir de votre code.This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

S’applique à

Voir aussi