DrawingContext Třída

Definice

Popisuje vizuální obsah pomocí příkazů kreslení, nasdílení změn 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
DrawingContext
Implementuje

Příklady

Následující příklad načte DrawingContext z DrawingVisual a použije ho k vykreslení 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 PushOpacity příkaz. Získá DrawingContext se z DrawingGroup ovládacího prvku a zobrazí se Image pomocí ovládacího prvku.

using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
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));
            }

            // 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))
            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

DrawingContext Slouží k naplnění Visual vizuálního obsahu nebo vizuálního Drawing obsahu.

I když se DrawingContext metody kreslení zobrazují podobně jako metody System.Drawing.Graphics kreslení typu, fungují velmi odlišně: DrawingContext používá se s grafickým systémem v režimu zachování režimu, 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, ve skutečnosti ukládáte sadu pokynů pro vykreslování (i když přesný mechanismus úložiště závisí na typu objektu DrawingContext, který poskytuje ), který bude později používán grafickým systémem; nejste kreslili na obrazovku v reálném čase. Další informace o fungování grafického systému Windows Presentation Foundation (WPF) naleznete v tématu Přehled vykreslování grafiky WPF.

Nikdy přímo nevytvoříte instanci DrawingContext; můžete však získat grafický kontext z určitých metod, jako jsou DrawingGroup.Open a DrawingVisual.RenderOpen.

Vlastnosti

Name Description
Dispatcher

Dispatcher Získá toto DispatcherObject je přidružené.

(Zděděno od DispatcherObject)

Metody

Name Description
CheckAccess()

Určuje, zda volající vlákno má přístup k tomuto DispatcherObject.

(Zděděno od DispatcherObject)
Close()

DrawingContext Zavře obsah a vyprázdní ho. DrawingContext Poté nelze změnit.

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 BrushPen a použije zadané animační hodiny.

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

Nakreslí tři tečky se zadaným Brush a Pen.

DrawGeometry(Brush, Pen, Geometry)

Nakreslí zadané Geometry pomocí zadaného Brush a Pen.

DrawGlyphRun(Brush, GlyphRun)

Nakreslí zadaný text.

DrawImage(ImageSource, Rect, AnimationClock)

Nakreslí obrázek do oblasti definované zadaným parametrem Rect a použije zadané animační hodiny.

DrawImage(ImageSource, Rect)

Nakreslí obrázek do oblasti definované zadaným Rectobjektem .

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, AnimationClock)

Nakreslí obdélník se zadaným Brush a Pen použije zadané animační hodiny.

DrawRectangle(Brush, Pen, Rect)

Nakreslí obdélník se zadaným Brush a Pen. Pero a kartáč může být null.

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

Nakreslí zaoblený obdélník se zadaným BrushPen a použije zadané animační hodiny.

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

Nakreslí zaoblený obdélník se zadaným Brush a Pen.

DrawText(FormattedText, Point)

Nakreslí formátovaný text v zadaném umístění.

DrawVideo(MediaPlayer, Rect, AnimationClock)

Nakreslí video do zadané oblasti a použije zadané animační hodiny.

DrawVideo(MediaPlayer, Rect)

Nakreslí video do zadané oblasti.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
Pop()

Zobrazí poslední neprůhlednou masku, neprůhlednost, klip, efekt nebo transformační operaci, která byla vložena do kontextu výkresu.

PushClip(Geometry)

Nasdílí zadanou oblast klipartu 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, AnimationClock)

Nasdílí zadané nastavení neprůhlednosti do kontextu výkresu a použije zadané animační hodiny.

PushOpacity(Double)

Nasdílí zadané nastavení neprůhlednosti do kontextu výkresu.

PushOpacityMask(Brush)

Vloží zadanou neprůhlednou masku 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, že volající vlákno má přístup k tomuto DispatcherObject.

(Zděděno od DispatcherObject)
VerifyApiNonstructuralChange()

Tento člen podporuje infrastrukturu WPF a nemá být používán přímo z vašeho kódu.

Explicitní implementace rozhraní

Name Description
IDisposable.Dispose()

Tento člen podporuje infrastrukturu Windows Presentation Foundation (WPF) a není určená k použití přímo z vašeho kódu.

Platí pro

Viz také