(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

DrawingContext-Klasse

Beschreibt visuellen Inhalt mithilfe der Befehle Draw, Push und Pop.

Namespace:  System.Windows.Media
Assembly:  PresentationCore (in PresentationCore.dll)

public abstract class DrawingContext : DispatcherObject, 
	IDisposable

Der DrawingContext-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche EigenschaftDispatcherRuft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist. (Von DispatcherObject geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeCheckAccessBestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Von DispatcherObject geerbt.)
Öffentliche MethodeCloseSchließt den DrawingContext und leert den Inhalt. Anschließend kann der DrawingContext nicht geändert werden.
Geschützte MethodeDisposeCoreGibt alle vom DrawingContext verwendeten Ressourcen frei.
Öffentliche MethodeDrawDrawingZeichnet das angegebene Drawing-Objekt.
Öffentliche MethodeDrawEllipse(Brush, Pen, Point, Double, Double)Zeichnet eine Ellipse mit dem angegebenen Brush und Pen.
Öffentliche MethodeDrawEllipse(Brush, Pen, Point, AnimationClock, Double, AnimationClock, Double, AnimationClock)Zeichnet eine Ellipse mit dem angegebenen Brush und Pen und wendet die angegebenen Animationsuhren an.
Öffentliche MethodeDrawGeometryZeichnet die angegebene Geometry mit dem angegebenen Brush und Pen.
Öffentliche MethodeDrawGlyphRunZeichnet den angegebenen Text.
Öffentliche MethodeDrawImage(ImageSource, Rect)Zeichnet ein Bild in dem vom angegebenen Rect definierten Bereich.
Öffentliche MethodeDrawImage(ImageSource, Rect, AnimationClock)Zeichnet ein Bild in dem vom angegebenen Rect definierten Bereich und wendet die angegebene Animationsuhr an.
Öffentliche MethodeDrawLine(Pen, Point, Point)Zeichnet mit dem angegebenen Pen eine Linie zwischen den angegebenen Punkten.
Öffentliche MethodeDrawLine(Pen, Point, AnimationClock, Point, AnimationClock)Zeichnet mit dem angegebenen Pen eine Linie zwischen den angegebenen Punkten und wendet die angegebenen Animationsuhren an.
Öffentliche MethodeDrawRectangle(Brush, Pen, Rect)Zeichnet ein Rechteck mit dem angegebenen Brush und Pen. Der Stift und der Pinsel können null sein.
Öffentliche MethodeDrawRectangle(Brush, Pen, Rect, AnimationClock)Zeichnet ein Rechteck mit dem angegebenen Brush und Pen und wendet die angegebenen Animationsuhren an.
Öffentliche MethodeDrawRoundedRectangle(Brush, Pen, Rect, Double, Double)Zeichnet ein abgerundetes Rechteck mit dem angegebenen Brush und Pen.
Öffentliche MethodeDrawRoundedRectangle(Brush, Pen, Rect, AnimationClock, Double, AnimationClock, Double, AnimationClock)Zeichnet ein abgerundetes Rechteck mit dem angegebenen Brush und Pen und wendet die angegebenen Animationsuhren an.
Öffentliche MethodeDrawTextZeichnet formatierten Text an der angegebenen Position.
Öffentliche MethodeDrawVideo(MediaPlayer, Rect)Zeichnet ein Video im angegebenen Bereich.
Öffentliche MethodeDrawVideo(MediaPlayer, Rect, AnimationClock)Zeichnet ein Video im angegebenen Bereich und wendet die angegebene Animationsuhr an.
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Geschützte MethodeFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte MethodeMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodePopHolt den letzten Vorgang für Durchlässigkeitsmaske, Durchlässigkeit, Clip, Effekt oder Transformation, der im Zeichnungskontext abgelegt wurde.
Öffentliche MethodePushClipLegt den angegebenen Ausschneidebereich im Zeichnungskontext ab.
Öffentliche MethodePushEffect Veraltet. Legt den angegebenen BitmapEffect im Zeichnungskontext ab.
Öffentliche MethodePushGuidelineSetLegt das angegebene GuidelineSet im Zeichnungskontext ab.
Öffentliche MethodePushOpacity(Double)Legt die angegebene Durchlässigkeitseinstellung im Zeichnungskontext ab.
Öffentliche MethodePushOpacity(Double, AnimationClock)Legt die angegebene Durchlässigkeitseinstellung im Zeichnungskontext ab und wendet die angegebene Animationsuhr an.
Öffentliche MethodePushOpacityMaskLegt die angegebene Durchlässigkeitsmaske im Zeichnungskontext ab.
Öffentliche MethodePushTransformLegt den angegebenen Transform im Zeichnungskontext ab.
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche MethodeVerifyAccessErzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Von DispatcherObject geerbt.)
Geschützte MethodeVerifyApiNonstructuralChangeDer Member bietet Unterstützung für die WPF-Infrastruktur und ist nicht für die direkte Verwendung im Code vorgesehen. 
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate MethodeIDisposable.DisposeDer Member unterstützt die Windows Presentation Foundation (WPF)-Infrastruktur und ist nicht für die direkte Verwendung im Code vorgesehen.
Zum Seitenanfang

Verwenden Sie einen DrawingContext, um ein Visual oder eine Drawing mit visuellem Inhalt aufzufüllen.

Zwar scheinen die DrawingContext-Zeichnungsmethoden den Zeichnungsmethoden vom Typ System.Drawing.Graphics zu ähneln, ihre Funktionsweise ist jedoch sehr verschieden. DrawingContext wird in einem Grafiksystem mit Speichermodus verwendet, während der System.Drawing.Graphics-Typ in einem Grafiksystem mit unmittelbarem Modus verwendet wird. Wenn Sie die Zeichnungsbefehle des DrawingContext-Objekts verwenden, speichern Sie einen Satz von Renderinganweisungen (wenn auch der tatsächliche Speichermechanismus vom Typ des Objekts abhängt, das den DrawingContext bereitstellt), die später vom Grafiksystem verwendet werden. Sie zeichnen nicht in Echtzeit auf dem Bildschirm. Weitere Informationen über die Funktionsweise des Windows Presentation Foundation (WPF)-Grafiksystems finden Sie unter Übersicht über das WPF-Grafikrendering.

Ein DrawingContext wird niemals direkt instanziiert. Sie können jedoch mit bestimmten Methoden, z. B. DrawingGroup.Open und DrawingVisual.RenderOpen, einen Zeichnungskontext abrufen.

Im folgenden Beispiel wird ein DrawingContext aus einem DrawingVisual abgerufen und zum Zeichnen eines Rechtecks verwendet.


// 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;
}


Im nächsten Beispiel werden die Befehle PushOpacity, PushEffect und Pop veranschaulicht. Der DrawingContext wird aus einer DrawingGroup abgerufen und mithilfe eines Image-Steuerelements angezeigt.


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



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;

        }




    }

}


.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft