DrawingContext Klass

Definition

Beskriver visuellt innehåll med hjälp av kommandona rita, push och 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
Arv
DrawingContext
Implementeringar

Exempel

I följande exempel hämtas en DrawingContext från en DrawingVisual och använder den för att rita en rektangel.

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

I nästa exempel visas PushOpacity kommandot . DrawingContext Hämtas från en DrawingGroup och visas med hjälp av en Image kontroll.

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

Kommentarer

Använd en DrawingContext för att fylla i en Visual eller en Drawing med visuellt innehåll.

DrawingContext Även om ritningsmetoderna ser ut ungefär som ritningsmetoderna System.Drawing.Graphics av typen fungerar de på ett helt annat sätt: DrawingContext används med ett grafiksystem för behållet System.Drawing.Graphics läge, medan typen används med ett grafiksystem i omedelbart läge. När du använder ett DrawingContext objekts ritningskommandon lagrar du faktiskt en uppsättning återgivningsinstruktioner (även om den exakta lagringsmekanismen beror på vilken typ av objekt som tillhandahåller DrawingContext) som senare kommer att användas av grafiksystemet. Du ritar inte till skärmen i realtid. Mer information om hur grafiksystemet Windows Presentation Foundation (WPF) fungerar finns i WPF Översikt över grafikrendering.

Du instansierar aldrig direkt en DrawingContext; Du kan dock hämta en ritningskontext från vissa metoder, till exempel DrawingGroup.Open och DrawingVisual.RenderOpen.

Egenskaper

Name Description
Dispatcher

Hämtar det Dispatcher som DispatcherObject är associerat med.

(Ärvd från DispatcherObject)

Metoder

Name Description
CheckAccess()

Avgör om den anropande tråden har åtkomst till den här DispatcherObject.

(Ärvd från DispatcherObject)
Close()

DrawingContext Stänger och rensar innehållet. Efteråt DrawingContext kan inte ändras.

DisposeCore()

Släpper alla resurser som används av DrawingContext.

DrawDrawing(Drawing)

Ritar det angivna Drawing objektet.

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

Ritar en ellips med angivet Brush och Pen tillämpar de angivna animeringsklockorna.

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

Ritar en ellips med angivet Brush och Pen.

DrawGeometry(Brush, Pen, Geometry)

Ritar angivet Geometry med angivet Brush och Pen.

DrawGlyphRun(Brush, GlyphRun)

Ritar den angivna texten.

DrawImage(ImageSource, Rect, AnimationClock)

Ritar en bild till den region som definieras av den angivna Rect och tillämpar den angivna animeringsklockan.

DrawImage(ImageSource, Rect)

Ritar en bild till den region som definieras av den angivna Rect.

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

Ritar en linje mellan de angivna punkterna med den angivna Pen och tillämpar de angivna animeringsklockorna.

DrawLine(Pen, Point, Point)

Ritar en linje mellan de angivna punkterna med den angivna Pen.

DrawRectangle(Brush, Pen, Rect, AnimationClock)

Ritar en rektangel med angiven Brush och Pen tillämpar de angivna animeringsklockorna.

DrawRectangle(Brush, Pen, Rect)

Ritar en rektangel med angivet Brush och Pen. Pennan och borsten kan vara null.

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

Ritar en rundad rektangel med angiven Brush och Pen tillämpar de angivna animeringsklockorna.

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

Ritar en rundad rektangel med angiven Brush och Pen.

DrawText(FormattedText, Point)

Ritar formaterad text på den angivna platsen.

DrawVideo(MediaPlayer, Rect, AnimationClock)

Ritar en video till den angivna regionen och tillämpar den angivna animeringsklockan.

DrawVideo(MediaPlayer, Rect)

Ritar en video till den angivna regionen.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
Pop()

Visar den senaste ogenomskinlighetsmasken, opaciteten, klippet, effekten eller transformeringsåtgärden som överfördes till ritningskontexten.

PushClip(Geometry)

Skickar det angivna klippområdet till ritningskontexten.

PushEffect(BitmapEffect, BitmapEffectInput)
Föråldrad.

Push-överför den angivna BitmapEffect till ritningskontexten.

PushGuidelineSet(GuidelineSet)

Push-överför den angivna GuidelineSet till ritningskontexten.

PushOpacity(Double, AnimationClock)

Push-överför den angivna opacitetsinställningen till ritningskontexten och tillämpar den angivna animeringsklockan.

PushOpacity(Double)

Push-överför den angivna opacitetsinställningen till ritningskontexten.

PushOpacityMask(Brush)

Skickar den angivna opacitetsmasken till ritningskontexten.

PushTransform(Transform)

Push-överför den angivna Transform till ritningskontexten.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
VerifyAccess()

Framtvingar att den anropande tråden har åtkomst till den här DispatcherObject.

(Ärvd från DispatcherObject)
VerifyApiNonstructuralChange()

Den här medlemmen stöder WPF infrastruktur och är inte avsedd att användas direkt från koden.

Explicita gränssnittsimplementeringar

Name Description
IDisposable.Dispose()

Den här medlemmen stöder infrastrukturen för Windows Presentation Foundation (WPF) och är inte avsedd att användas direkt från koden.

Gäller för

Se även