DrawingContext Osztály

Definíció

A vizuális tartalmakat rajz- és leküldéses és pop-parancsokkal ismerteti.

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
Öröklődés
DrawingContext
Megvalósítás

Példák

Az alábbi példa lekér egy DrawingContext a DrawingVisual-ból, és egy téglalap rajzolásához használja.

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

A következő példa a PushOpacity parancsot mutatja be. A DrawingContext lekért DrawingGroup és egy vezérlővel Image megjeleníthető.

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

Megjegyzések

DrawingContext Egy vagy több vizualizáció tartalommal való feltöltéséhez Visual használjon egy vagy több Drawing elemet.

Bár a DrawingContext rajzolási módszerek a típus rajzolási módszereihez System.Drawing.Graphics hasonlóan jelennek meg, nagyon eltérően működnek: DrawingContext megtartott módú grafikus rendszer esetén használják, míg a System.Drawing.Graphics típust azonnali módú grafikus rendszerrel használják. Amikor egy DrawingContext objektum rajzparancsait használja, valójában renderelési utasítások készletét tárolja (bár a pontos tárolási mechanizmus attól függ, hogy a grafikus rendszer milyen típusú objektumot biztosít DrawingContext, amelyet később a grafikus rendszer használni fog; nem valós időben rajzol a képernyőre. A Windows megjelenítési alaprendszer (WPF) grafikus rendszer működésével kapcsolatos további információkért lásd: WPF Grafikus megjelenítés áttekintése.

Soha ne példányosíts közvetlenül DrawingContext; azonban bizonyos metódusokból, például DrawingGroup.Open és DrawingVisual.RenderOpenis beszerezhet egy rajzkörnyezetet.

Tulajdonságok

Name Description
Dispatcher

Lekérdezi, Dispatcher hogy ez a társítva van-e DispatcherObject .

(Öröklődés forrása DispatcherObject)

Metódusok

Name Description
CheckAccess()

Meghatározza, hogy a hívó szál hozzáfér-e ehhez DispatcherObject.

(Öröklődés forrása DispatcherObject)
Close()

Bezárja a DrawingContext tartalmat, és kiüríti a tartalmat. Ezt követően az DrawingContext nem módosítható.

DisposeCore()

Felszabadítja a .-hez használt összes erőforrást DrawingContext.

DrawDrawing(Drawing)

A megadott Drawing objektum rajzolása.

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

A megadott Brush három pontot rajzolja meg, és Pen alkalmazza a megadott animációs órákat.

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

Három pontot rajzol a megadott és Brusha .Pen

DrawGeometry(Brush, Pen, Geometry)

A megadott Geometry és Brusha .Pen

DrawGlyphRun(Brush, GlyphRun)

A megadott szöveg rajzolása.

DrawImage(ImageSource, Rect, AnimationClock)

Képet rajzol a megadott Rect régióba, és alkalmazza a megadott animációs órát.

DrawImage(ImageSource, Rect)

Képet rajzol a megadott Rectrégióba.

DrawLine(Pen, Point, AnimationClock, Point, AnimationClock)

Vonal rajzolása a megadott pontok között a megadott Pen és a megadott animációs órák alkalmazásával.

DrawLine(Pen, Point, Point)

Vonal rajzolása a megadott pontok között a megadott Penhasználatával.

DrawRectangle(Brush, Pen, Rect, AnimationClock)

Téglalapot rajzol a megadottal Brush , és Pen alkalmazza a megadott animációs órákat.

DrawRectangle(Brush, Pen, Rect)

Téglalap rajzolása a megadott Brush és Pena . A toll és az ecset lehet null.

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

Lekerekített téglalapot rajzol a megadottal Brush , és Pen alkalmazza a megadott animációs órákat.

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

Lekerekített téglalap rajzolása a megadott Brush és Pena .

DrawText(FormattedText, Point)

Formázott szöveget rajzol a megadott helyen.

DrawVideo(MediaPlayer, Rect, AnimationClock)

Berajzol egy videót a megadott régióba, és alkalmazza a megadott animációs órát.

DrawVideo(MediaPlayer, Rect)

Videó rajzolása a megadott régióba.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
Pop()

A rajzkörnyezetbe leküldött utolsó átlátszatlansági maszk, átlátszatlanság, klip, effektus vagy átalakítás művelet megnyitása.

PushClip(Geometry)

Leküldi a megadott klipterületet a rajzkörnyezetbe.

PushEffect(BitmapEffect, BitmapEffectInput)
Elavult.

Leküldi a megadottt BitmapEffect a rajzkörnyezetbe.

PushGuidelineSet(GuidelineSet)

Leküldi a megadottt GuidelineSet a rajzkörnyezetbe.

PushOpacity(Double, AnimationClock)

Leküldi a megadott átlátszatlansági beállítást a rajzkörnyezetbe, és alkalmazza a megadott animációs órát.

PushOpacity(Double)

Leküldi a megadott átlátszatlansági beállítást a rajzkörnyezetbe.

PushOpacityMask(Brush)

Leküldi a megadott opacitásmaszkot a rajzkörnyezetbe.

PushTransform(Transform)

Leküldi a megadottt Transform a rajzkörnyezetbe.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)
VerifyAccess()

Kényszeríti, hogy a hívószál hozzáférhessen ehhez.DispatcherObject

(Öröklődés forrása DispatcherObject)
VerifyApiNonstructuralChange()

Ez a tag támogatja a WPF infrastruktúrát, és nem közvetlenül a kódból való használatra szolgál.

Explicit interfész-implementációk

Name Description
IDisposable.Dispose()

Ez a tag támogatja a Windows megjelenítési alaprendszer (WPF) infrastruktúrát, és nem közvetlenül a kódból való használatra szolgál.

A következőre érvényes:

Lásd még