DrawingContext Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Beschreibt visuellen Inhalt mithilfe der Befehle „draw“, „push“ und „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
- Vererbung
- Implementiert
Beispiele
Im folgenden Beispiel wird eine DrawingContext aus einem Objekt 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;
}
' 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 werden die PushOpacityPushEffectBefehle und Pop Befehle veranschaulicht. Dies DrawingContext wird von einem DrawingGroup Steuerelement abgerufen und mit einem Image Steuerelement angezeigt.
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 Sie eineDrawingContext, um einen oder einen Drawing Visual visuellen Inhalt aufzufüllen.
Obwohl die Draw-Methoden ähnlich wie die DrawingContext Draw-Methoden des System.Drawing.Graphics Typs erscheinen, funktionieren sie sehr unterschiedlich: DrawingContext wird mit einem beibehaltenen Modusgrafiksystem verwendet, während der System.Drawing.Graphics Typ mit einem Direktmodusgrafiksystem verwendet wird. Wenn Sie die Zeichnungsbefehle eines DrawingContext Objekts verwenden, speichern Sie tatsächlich eine Reihe von Renderinganweisungen (obwohl der genaue Speichermechanismus vom Typ des Objekts abhängt, DrawingContextder später vom Grafiksystem verwendet wird; Sie zeichnen nicht in Echtzeit auf den Bildschirm. Weitere Informationen dazu, wie das grafiksystem Windows Presentation Foundation (WPF) funktioniert, finden Sie unter WPF Graphics Rendering Overview.
Sie instanziieren nie direkt einen DrawingContext; Sie können jedoch einen Zeichnungskontext aus bestimmten Methoden wie z DrawingGroup.Open . B. und DrawingVisual.RenderOpen.
Eigenschaften
Dispatcher |
Ruft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist. (Geerbt von DispatcherObject) |
Methoden
CheckAccess() |
Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Geerbt von DispatcherObject) |
Close() |
Schließt den DrawingContext und leert den Inhalt. Anschließend kann der DrawingContext nicht geändert werden. |
DisposeCore() |
Gibt alle vom DrawingContext verwendeten Ressourcen frei. |
DrawDrawing(Drawing) |
Zeichnet das angegebene Drawing-Objekt. |
DrawEllipse(Brush, Pen, Point, AnimationClock, Double, AnimationClock, Double, AnimationClock) |
Zeichnet eine Ellipse mit dem angegebenen Brush und Pen und wendet die angegebenen Animationsuhren an. |
DrawEllipse(Brush, Pen, Point, Double, Double) | |
DrawGeometry(Brush, Pen, Geometry) |
Zeichnet die angegebene Geometry unter Verwendung der angegebenen Brush- und Pen-Elemente. |
DrawGlyphRun(Brush, GlyphRun) |
Zeichnet den angegebenen Text. |
DrawImage(ImageSource, Rect) |
Zeichnet ein Bild in dem vom angegebenen Rect definierten Bereich. |
DrawImage(ImageSource, Rect, AnimationClock) |
Zeichnet ein Bild in dem vom angegebenen Rect definierten Bereich und wendet die angegebene Animationsuhr an. |
DrawLine(Pen, Point, AnimationClock, Point, AnimationClock) |
Zeichnet mit dem angegebenen Pen eine Linie zwischen den angegebenen Punkten und wendet die angegebenen Animationsuhren an. |
DrawLine(Pen, Point, Point) |
Zeichnet mit dem angegebenen Pen eine Linie zwischen den angegebenen Punkten. |
DrawRectangle(Brush, Pen, Rect) |
Zeichnet ein Rechteck mit dem angegebenen Brush und Pen. Der Stift und der Pinsel können |
DrawRectangle(Brush, Pen, Rect, AnimationClock) |
Zeichnet ein Rechteck mit dem angegebenen Brush und Pen und wendet die angegebenen Animationsuhren an. |
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. |
DrawRoundedRectangle(Brush, Pen, Rect, Double, Double) |
Zeichnet ein abgerundetes Rechteck mit dem angegebenen Brush und Pen. |
DrawText(FormattedText, Point) |
Zeichnet formatierten Text an der angegebenen Position. |
DrawVideo(MediaPlayer, Rect) |
Zeichnet ein Video im angegebenen Bereich. |
DrawVideo(MediaPlayer, Rect, AnimationClock) |
Zeichnet ein Video im angegebenen Bereich und wendet die angegebene Animationsuhr an. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
Pop() |
Holt den letzten Vorgang für Durchlässigkeitsmaske, Durchlässigkeit, Clip, Effekt oder Transformation, der im Zeichnungskontext abgelegt wurde. |
PushClip(Geometry) |
Legt den angegebenen Ausschneidebereich im Zeichnungskontext ab. |
PushEffect(BitmapEffect, BitmapEffectInput) |
Veraltet.
Legt den angegebenen BitmapEffect im Zeichnungskontext ab. |
PushGuidelineSet(GuidelineSet) |
Legt den angegebenen GuidelineSet im Zeichnungskontext ab. |
PushOpacity(Double) |
Legt die angegebene Durchlässigkeitseinstellung im Zeichnungskontext ab. |
PushOpacity(Double, AnimationClock) |
Legt die angegebene Durchlässigkeitseinstellung im Zeichnungskontext ab und wendet die angegebene Animationsuhr an. |
PushOpacityMask(Brush) |
Legt die angegebene Durchlässigkeitsmaske im Zeichnungskontext ab. |
PushTransform(Transform) |
Legt den angegebenen Transform im Zeichnungskontext ab. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
VerifyAccess() |
Erzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Geerbt von DispatcherObject) |
VerifyApiNonstructuralChange() |
Dieses Mitglied unterstützt die WPF-Infrastruktur und soll nicht direkt aus Ihrem Code verwendet werden. |
Explizite Schnittstellenimplementierungen
IDisposable.Dispose() |
Dieses Mitglied unterstützt die Windows Presentation Foundation-Infrastruktur (WPF) und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. |