DrawingContext DrawingContext DrawingContext DrawingContext Class

Definition

Beschreibt visuellen Inhalt mithilfe der Befehle Draw, Push und 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
Vererbung
Implementiert

Beispiele

Das folgende Beispiel ruft eine DrawingContext aus einem DrawingVisual und wird verwendet, um ein Rechteck zu zeichnen.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

Im nächsten Beispiel wird die PushOpacity, PushEffect, und Pop Befehle.The next example demonstrates the PushOpacity, PushEffect, and Pop commands. Die DrawingContext aus einer eine DrawingGroup und nutzt ein Image Steuerelement.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

Hinweise

Verwenden einer DrawingContext zum Auffüllen einer Visual oder Drawing mit visuellem Inhalt.Use a DrawingContext to populate a Visual or a Drawing with visual content.

Obwohl die DrawingContext Draw-Methoden ähneln den Zeichenmethode des der System.Drawing.Graphics Typ funktionieren sehr unterschiedlich, je: DrawingContext ist zwar mit einem System mit retained Mode-Grafiken verwendet, die System.Drawing.Graphics Typ wird verwendet, mit einem unmittelbaren Modus Das Grafiksystem.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. Bei Verwendung einer DrawingContext des Objekts zeichnen-Befehle, speichern Sie einen Satz von Renderinganweisungen (obwohl der tatsächliche Speichermechanismus hängt vom Typ des Objekts, das angibt der DrawingContext), die später von Grafiken verwendet werden System; Sie werden nicht in Echtzeit auf dem Bildschirm gezeichnet.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. Weitere Informationen zur Funktionsweise der Windows Presentation Foundation (WPF)-Grafiksystem finden Sie unter Grafiken Übersicht über das WPF.For more information about how the Windows Presentation Foundation (WPF) graphics system works, see WPF Graphics Rendering Overview.

Instanziieren Sie nie direkt eine DrawingContext; Sie können jedoch einen Zeichnungskontext mit bestimmten Methoden, abrufen, wie z. B. DrawingGroup.Open und 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.

Methoden

CheckAccess() CheckAccess() CheckAccess() CheckAccess()

Bestimmt, ob der aufrufende Thread den Zugriff auf diese kann DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)
Close() Close() Close() Close()

Schließt den DrawingContext und leert den Inhalt.Closes the DrawingContext and flushes the content. Anschließend kann der DrawingContext nicht geändert werden.Afterward, the DrawingContext cannot be modified.

DisposeCore() DisposeCore() DisposeCore() DisposeCore()

Gibt alle vom DrawingContext verwendeten Ressourcen frei.Releases all resources used by the DrawingContext.

DrawDrawing(Drawing) DrawDrawing(Drawing) DrawDrawing(Drawing) DrawDrawing(Drawing)

Zeichnet das angegebene Drawing-Objekt.Draws the specified Drawing object.

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

Zeichnet eine Ellipse mit dem angegebenen Brush und Pen und wendet die angegebenen Animationsuhren an.Draws an ellipse with the specified Brush and Pen and applies the specified animation clocks.

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

Zeichnet eine Ellipse mit dem angegebenen Brush und Pen.Draws an ellipse with the specified Brush and Pen.

DrawGeometry(Brush, Pen, Geometry) DrawGeometry(Brush, Pen, Geometry) DrawGeometry(Brush, Pen, Geometry) DrawGeometry(Brush, Pen, Geometry)

Zeichnet die angegebene Geometry mit dem angegebenen Brush und Pen.Draws the specified Geometry using the specified Brush and Pen.

DrawGlyphRun(Brush, GlyphRun) DrawGlyphRun(Brush, GlyphRun) DrawGlyphRun(Brush, GlyphRun) DrawGlyphRun(Brush, GlyphRun)

Zeichnet den angegebenen Text.Draws the specified text.

DrawImage(ImageSource, Rect) DrawImage(ImageSource, Rect) DrawImage(ImageSource, Rect) DrawImage(ImageSource, Rect)

Zeichnet ein Bild in dem vom angegebenen Rect definierten Bereich.Draws an image into the region defined by the specified Rect.

DrawImage(ImageSource, Rect, AnimationClock) DrawImage(ImageSource, Rect, AnimationClock) DrawImage(ImageSource, Rect, AnimationClock) DrawImage(ImageSource, Rect, AnimationClock)

Zeichnet ein Bild in dem vom angegebenen Rect definierten Bereich und wendet die angegebene Animationsuhr an.Draws an image into the region defined by the specified Rect and applies the specified animation clock.

DrawLine(Pen, Point, AnimationClock, Point, AnimationClock) DrawLine(Pen, Point, AnimationClock, Point, AnimationClock) DrawLine(Pen, Point, AnimationClock, Point, AnimationClock) DrawLine(Pen, Point, AnimationClock, Point, AnimationClock)

Zeichnet mit dem angegebenen Pen eine Linie zwischen den angegebenen Punkten und wendet die angegebenen Animationsuhren an.Draws a line between the specified points using the specified Pen and applies the specified animation clocks.

DrawLine(Pen, Point, Point) DrawLine(Pen, Point, Point) DrawLine(Pen, Point, Point) DrawLine(Pen, Point, Point)

Zeichnet mit dem angegebenen Pen eine Linie zwischen den angegebenen Punkten.Draws a line between the specified points using the specified Pen.

DrawRectangle(Brush, Pen, Rect) DrawRectangle(Brush, Pen, Rect) DrawRectangle(Brush, Pen, Rect) DrawRectangle(Brush, Pen, Rect)

Zeichnet ein Rechteck mit dem angegebenen Brush und Pen.Draws a rectangle with the specified Brush and Pen. Der Stift und der Pinsel können null sein.The pen and the brush can be null.

DrawRectangle(Brush, Pen, Rect, AnimationClock) DrawRectangle(Brush, Pen, Rect, AnimationClock) DrawRectangle(Brush, Pen, Rect, AnimationClock) DrawRectangle(Brush, Pen, Rect, AnimationClock)

Zeichnet ein Rechteck mit dem angegebenen Brush und Pen und wendet die angegebenen Animationsuhren an.Draws a rectangle with the specified Brush and Pen and applies the specified animation clocks.

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

Zeichnet ein abgerundetes Rechteck mit dem angegebenen Brush und Pen und wendet die angegebenen Animationsuhren an.Draws a rounded rectangle with the specified Brush and Pen and applies the specified animation clocks.

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

Zeichnet ein abgerundetes Rechteck mit dem angegebenen Brush und Pen.Draws a rounded rectangle with the specified Brush and Pen.

DrawText(FormattedText, Point) DrawText(FormattedText, Point) DrawText(FormattedText, Point) DrawText(FormattedText, Point)

Zeichnet formatierten Text an der angegebenen Position.Draws formatted text at the specified location.

DrawVideo(MediaPlayer, Rect) DrawVideo(MediaPlayer, Rect) DrawVideo(MediaPlayer, Rect) DrawVideo(MediaPlayer, Rect)

Zeichnet ein Video im angegebenen Bereich.Draws a video into the specified region.

DrawVideo(MediaPlayer, Rect, AnimationClock) DrawVideo(MediaPlayer, Rect, AnimationClock) DrawVideo(MediaPlayer, Rect, AnimationClock) DrawVideo(MediaPlayer, Rect, AnimationClock)

Zeichnet ein Video im angegebenen Bereich und wendet die angegebene Animationsuhr an.Draws a video into the specified region and applies the specified animation clock.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
Pop() Pop() Pop() Pop()

Holt den letzten Vorgang für Durchlässigkeitsmaske, Durchlässigkeit, Clip, Effekt oder Transformation, der im Zeichnungskontext abgelegt wurde.Pops the last opacity mask, opacity, clip, effect, or transform operation that was pushed onto the drawing context.

PushClip(Geometry) PushClip(Geometry) PushClip(Geometry) PushClip(Geometry)

Legt den angegebenen Ausschneidebereich im Zeichnungskontext ab.Pushes the specified clip region onto the drawing context.

PushEffect(BitmapEffect, BitmapEffectInput) PushEffect(BitmapEffect, BitmapEffectInput) PushEffect(BitmapEffect, BitmapEffectInput) PushEffect(BitmapEffect, BitmapEffectInput)

Legt den angegebenen BitmapEffect im Zeichnungskontext ab.Pushes the specified BitmapEffect onto the drawing context.

PushGuidelineSet(GuidelineSet) PushGuidelineSet(GuidelineSet) PushGuidelineSet(GuidelineSet) PushGuidelineSet(GuidelineSet)

Legt den angegebenen GuidelineSet im Zeichnungskontext ab.Pushes the specified GuidelineSet onto the drawing context.

PushOpacity(Double) PushOpacity(Double) PushOpacity(Double) PushOpacity(Double)

Legt die angegebene Durchlässigkeitseinstellung im Zeichnungskontext ab.Pushes the specified opacity setting onto the drawing context.

PushOpacity(Double, AnimationClock) PushOpacity(Double, AnimationClock) PushOpacity(Double, AnimationClock) PushOpacity(Double, AnimationClock)

Legt die angegebene Durchlässigkeitseinstellung im Zeichnungskontext ab und wendet die angegebene Animationsuhr an.Pushes the specified opacity setting onto the drawing context and applies the specified animation clock.

PushOpacityMask(Brush) PushOpacityMask(Brush) PushOpacityMask(Brush) PushOpacityMask(Brush)

Legt die angegebene Durchlässigkeitsmaske im Zeichnungskontext ab.Pushes the specified opacity mask onto the drawing context.

PushTransform(Transform) PushTransform(Transform) PushTransform(Transform) PushTransform(Transform)

Legt den angegebenen Transform im Zeichnungskontext ab.Pushes the specified Transform onto the drawing context.

ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)
VerifyAccess() VerifyAccess() VerifyAccess() VerifyAccess()

Erzwingt, dass der aufrufende Thread den Zugriff auf diese DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)
VerifyApiNonstructuralChange() VerifyApiNonstructuralChange() VerifyApiNonstructuralChange() VerifyApiNonstructuralChange()

Dieser Member unterstützt die WPFWPF-Infrastruktur und ist nicht für die direkte Verwendung im Code vorgesehen.This member supports the WPFWPF infrastructure and is not intended to be used directly from your code.

Explizite Schnittstellenimplementierungen

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

Dieser Member unterstützt die Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)-Infrastruktur und ist nicht für die direkte Verwendung im Code vorgesehen.This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

Eigenschaften

Dispatcher Dispatcher Dispatcher Dispatcher

Ruft die Dispatcher dies DispatcherObject zugeordnet ist.Gets the Dispatcher this DispatcherObject is associated with.

(Inherited from DispatcherObject)

Gilt für:

Siehe auch