DrawingContext Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Popisuje vizuální obsah pomocí příkazů kreslení, nabízení a 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
- Dědičnost
- Implementuje
Příklady
Následující příklad načte z objektu DrawingVisual a DrawingContext použije ho k nakreslení obdélníku.
// 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
Následující příklad ukazuje PushOpacitypříkazy , PushEffecta Pop příkazy. Získá DrawingContext se z DrawingGroup ovládacího prvku a zobrazí se Image pomocí ovládacího prvku.
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
Poznámky
Použijte k DrawingContext naplnění Visual nebo s vizuálním Drawing obsahem.
DrawingContext I když se metody kreslení podobají kresleným metodám System.Drawing.Graphics typu, fungují velmi odlišně: DrawingContext používá se se zachovaným režimovým grafickým systémem, zatímco System.Drawing.Graphics typ se používá s grafickým systémem okamžitého režimu. Když použijete DrawingContext příkazy kreslení objektu, skutečně ukládáte sadu pokynů pro vykreslování (i když přesný mechanismus úložiště závisí na typu objektu DrawingContext, který bude později používat grafický systém; v reálném čase se na obrazovku nenakresluje. Další informace o tom, jak grafický systém WPF (Windows Presentation Foundation (WPF) funguje, najdete v tématu Přehled vykreslování grafiky WPF.
Nikdy přímo nenasadíte DrawingContextinstanci ; můžete však získat kontext kreslení z určitých metod, například DrawingGroup.Open a DrawingVisual.RenderOpen.
Vlastnosti
Dispatcher |
Získá to DispatcherObject je přidruženoDispatcher. (Zděděno od DispatcherObject) |
Metody
CheckAccess() |
Určuje, zda má volající vlákno přístup k tomuto DispatcherObject. (Zděděno od DispatcherObject) |
Close() |
Zavře obsah a vyprázdní DrawingContext ho. DrawingContext Poté nelze upravit. |
DisposeCore() |
Uvolní všechny prostředky používané nástrojem DrawingContext. |
DrawDrawing(Drawing) |
Nakreslí zadaný Drawing objekt. |
DrawEllipse(Brush, Pen, Point, AnimationClock, Double, AnimationClock, Double, AnimationClock) |
Nakreslí tři tečky se zadaným Brush a Pen použije zadané animační hodiny. |
DrawEllipse(Brush, Pen, Point, Double, Double) | |
DrawGeometry(Brush, Pen, Geometry) | |
DrawGlyphRun(Brush, GlyphRun) |
Nakreslí zadaný text. |
DrawImage(ImageSource, Rect) |
Nakreslí obrázek do oblasti definované zadaným Rectobjektem . |
DrawImage(ImageSource, Rect, AnimationClock) |
Nakreslí obrázek do oblasti definované zadaným a Rect použije zadané hodiny animace. |
DrawLine(Pen, Point, AnimationClock, Point, AnimationClock) |
Nakreslí čáru mezi zadanými body pomocí zadaného Pen a použije zadané animační hodiny. |
DrawLine(Pen, Point, Point) |
Nakreslí čáru mezi zadanými body pomocí zadaného Penbodu . |
DrawRectangle(Brush, Pen, Rect) |
Nakreslí obdélník se zadaným Brush a Pen. Pero a kartáč může být |
DrawRectangle(Brush, Pen, Rect, AnimationClock) |
Nakreslí obdélník se zadaným Brush a Pen použije zadané animační hodiny. |
DrawRoundedRectangle(Brush, Pen, Rect, AnimationClock, Double, AnimationClock, Double, AnimationClock) |
Nakreslí zaokrouhlený obdélník se zadaným Brush a Pen použije zadané animační hodiny. |
DrawRoundedRectangle(Brush, Pen, Rect, Double, Double) | |
DrawText(FormattedText, Point) |
Nakreslí formátovaný text do zadaného umístění. |
DrawVideo(MediaPlayer, Rect) |
Nakreslí video do zadané oblasti. |
DrawVideo(MediaPlayer, Rect, AnimationClock) |
Nakreslí video do zadané oblasti a použije zadané hodiny animace. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
Pop() |
Zobrazí poslední neprůhlednou masku, neprůhlednost, klip, efekt nebo operaci transformace, která byla vložena do kontextu výkresu. |
PushClip(Geometry) |
Vloží zadanou oblast klipů do kontextu výkresu. |
PushEffect(BitmapEffect, BitmapEffectInput) |
Zastaralé.
Vloží zadaný BitmapEffect do kontextu výkresu. |
PushGuidelineSet(GuidelineSet) |
Vloží zadaný GuidelineSet do kontextu výkresu. |
PushOpacity(Double) |
Vloží zadané nastavení neprůhlednosti do kontextu výkresu. |
PushOpacity(Double, AnimationClock) |
Vloží zadané nastavení neprůhlednosti do kontextu výkresu a použije zadané animační hodiny. |
PushOpacityMask(Brush) |
Vloží zadanou masku neprůhlednosti do kontextu výkresu. |
PushTransform(Transform) |
Vloží zadaný Transform do kontextu výkresu. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
VerifyAccess() |
Vynucuje, aby volající vlákno má k tomuto DispatcherObjectpřístupu přístup . (Zděděno od DispatcherObject) |
VerifyApiNonstructuralChange() |
Tento člen podporuje infrastrukturu WPF a není určen k použití přímo z vašeho kódu. |
Explicitní implementace rozhraní
IDisposable.Dispose() |
Tento člen podporuje infrastrukturu Windows Presentation Foundation (WPF) a není určená k použití přímo z vašeho kódu. |