DrawingContext Class
Describes visual content using draw, push, and pop commands.
Assembly: PresentationCore (in PresentationCore.dll)
| Name | Description | |
|---|---|---|
![]() | Dispatcher | Gets the Dispatcher this DispatcherObject is associated with. (Inherited from DispatcherObject.) |
| Name | Description | |
|---|---|---|
![]() | CheckAccess() | Determines whether the calling thread has access to this DispatcherObject.(Inherited from DispatcherObject.) |
![]() | Close() | Closes the DrawingContext and flushes the content. Afterward, the DrawingContext cannot be modified. |
![]() | DisposeCore() | Releases all resources used by the DrawingContext. |
![]() | DrawDrawing(Drawing^) | Draws the specified Drawing object. |
![]() | DrawEllipse(Brush^, Pen^, Point, AnimationClock^, Double, AnimationClock^, Double, AnimationClock^) | |
![]() | DrawEllipse(Brush^, Pen^, Point, Double, Double) | |
![]() | DrawGeometry(Brush^, Pen^, Geometry^) | |
![]() | DrawGlyphRun(Brush^, GlyphRun^) | Draws the specified text. |
![]() | DrawImage(ImageSource^, Rect) | Draws an image into the region defined by the specified Rect. |
![]() | DrawImage(ImageSource^, Rect, AnimationClock^) | Draws an image into the region defined by the specified Rect and applies the specified animation clock. |
![]() | DrawLine(Pen^, Point, AnimationClock^, Point, AnimationClock^) | Draws a line between the specified points using the specified Pen and applies the specified animation clocks. |
![]() | DrawLine(Pen^, Point, Point) | Draws a line between the specified points using the specified Pen. |
![]() | DrawRectangle(Brush^, Pen^, Rect) | |
![]() | DrawRectangle(Brush^, Pen^, Rect, AnimationClock^) | |
![]() | DrawRoundedRectangle(Brush^, Pen^, Rect, AnimationClock^, Double, AnimationClock^, Double, AnimationClock^) | |
![]() | DrawRoundedRectangle(Brush^, Pen^, Rect, Double, Double) | |
![]() | DrawText(FormattedText^, Point) | Draws formatted text at the specified location. |
![]() | DrawVideo(MediaPlayer^, Rect) | Draws a video into the specified region. |
![]() | DrawVideo(MediaPlayer^, Rect, AnimationClock^) | Draws a video into the specified region and applies the specified animation clock. |
![]() | Equals(Object^) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | MemberwiseClone() | |
![]() | Pop() | Pops the last opacity mask, opacity, clip, effect, or transform operation that was pushed onto the drawing context. |
![]() | PushClip(Geometry^) | Pushes the specified clip region onto the drawing context. |
![]() | PushEffect(BitmapEffect^, BitmapEffectInput^) | Obsolete. Pushes the specified BitmapEffect onto the drawing context. |
![]() | PushGuidelineSet(GuidelineSet^) | Pushes the specified GuidelineSet onto the drawing context. |
![]() | PushOpacity(Double) | Pushes the specified opacity setting onto the drawing context. |
![]() | PushOpacity(Double, AnimationClock^) | Pushes the specified opacity setting onto the drawing context and applies the specified animation clock. |
![]() | PushOpacityMask(Brush^) | Pushes the specified opacity mask onto the drawing context. |
![]() | PushTransform(Transform^) | Pushes the specified Transform onto the drawing context. |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
![]() | VerifyAccess() | Enforces that the calling thread has access to this DispatcherObject.(Inherited from DispatcherObject.) |
![]() | VerifyApiNonstructuralChange() | This member supports the WPF infrastructure and is not intended to be used directly from your code. |
| Name | Description | |
|---|---|---|
![]() ![]() | IDisposable::Dispose() | This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. |
Use a DrawingContext to populate a Visual or a Drawing with visual content.
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. 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. For more information about how the Windows Presentation Foundation (WPF) graphics system works, see WPF Graphics Rendering Overview.
You never directly instantiate a DrawingContext; you can, however, acquire a drawing context from certain methods, such as DrawingGroup::Open and DrawingVisual::RenderOpen.
The following example retrieves a DrawingContext from a DrawingVisual and uses it to draw a rectangle.
The next example demonstrates the PushOpacity, PushEffect, and Pop commands. The DrawingContext is obtained from a DrawingGroup and displayed using an Image control.
Available since 3.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.




