DrawingContext Klas

Definitie

Beschrijft visuele inhoud met behulp van teken-, push- en pop-opdrachten.

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
Overname
DrawingContext
Implementeringen

Voorbeelden

Het volgende voorbeeld haalt een DrawingContext op uit een DrawingVisual en gebruikt het om een rechthoek te tekenen.

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

In het volgende voorbeeld ziet u de PushOpacity opdracht. De DrawingContext gegevens worden verkregen uit een DrawingGroup besturingselement en weergegeven met behulp van een Image besturingselement.

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

Opmerkingen

Gebruik een DrawingContext inhoud om een Visual of meer Drawing visuele inhoud te vullen.

Hoewel de DrawingContext tekenmethoden lijken op de tekenmethoden van het System.Drawing.Graphics type, werken ze heel anders: DrawingContext wordt gebruikt met een grafische systeem met behoudmodus, terwijl het System.Drawing.Graphics type wordt gebruikt met een direct grafische modussysteem. Wanneer u de tekenopdrachten van een DrawingContext object gebruikt, slaat u in feite een set renderinginstructies op (hoewel het exacte opslagmechanisme afhankelijk is van het type object dat het DrawingContextobject levert) dat later door het grafische systeem wordt gebruikt. U tekent niet in realtime op het scherm. Zie WPF Graphics Rendering Overview voor meer informatie over de werking van het grafische Windows Presentation Foundation (WPF).

Je instantieert nooit rechtstreeks een DrawingContext; je kunt echter een tekencontext verkrijgen van bepaalde methoden zoals DrawingGroup.Open en DrawingVisual.RenderOpen.

Eigenschappen

Name Description
Dispatcher

Hiermee wordt de Dispatcher aan dit DispatcherObject gekoppelde bestand.

(Overgenomen van DispatcherObject)

Methoden

Name Description
CheckAccess()

Bepaalt of de aanroepende thread toegang heeft tot dit DispatcherObject.

(Overgenomen van DispatcherObject)
Close()

Hiermee sluit u de DrawingContext inhoud en verwijdert u de inhoud. Daarna kan het DrawingContext niet meer worden gewijzigd.

DisposeCore()

Alle resources die worden gebruikt door de DrawingContext.

DrawDrawing(Drawing)

Hiermee tekent u het opgegeven Drawing object.

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

Hiermee tekent u een beletselteken met het opgegeven Brush en Pen past u de opgegeven animatieklokken toe.

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

Hiermee tekent u een beletselteken met het opgegeven Brush en Pen.

DrawGeometry(Brush, Pen, Geometry)

Hiermee tekent u de opgegeven Geometry met behulp van de opgegeven Brush en Pen.

DrawGlyphRun(Brush, GlyphRun)

Hiermee tekent u de opgegeven tekst.

DrawImage(ImageSource, Rect, AnimationClock)

Hiermee tekent u een afbeelding in de regio die is gedefinieerd door de opgegeven Rect en past u de opgegeven animatieklok toe.

DrawImage(ImageSource, Rect)

Hiermee tekent u een afbeelding in de regio die is gedefinieerd door de opgegeven Rect.

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

Hiermee tekent u een lijn tussen de opgegeven punten met behulp van de opgegeven Pen en past u de opgegeven animatieklokken toe.

DrawLine(Pen, Point, Point)

Hiermee tekent u een lijn tussen de opgegeven punten met behulp van de opgegeven Pen.

DrawRectangle(Brush, Pen, Rect, AnimationClock)

Hiermee tekent u een rechthoek met de opgegeven Brush en Pen past u de opgegeven animatieklokken toe.

DrawRectangle(Brush, Pen, Rect)

Hiermee tekent u een rechthoek met de opgegeven Brush en Pen. De pen en de borstel kunnen zijn null.

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

Hiermee tekent u een afgeronde rechthoek met de opgegeven Brush en Pen past u de opgegeven animatieklokken toe.

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

Hiermee tekent u een afgeronde rechthoek met de opgegeven Brush en Pen.

DrawText(FormattedText, Point)

Hiermee tekent u opgemaakte tekst op de opgegeven locatie.

DrawVideo(MediaPlayer, Rect, AnimationClock)

Hiermee tekent u een video in de opgegeven regio en past u de opgegeven animatieklok toe.

DrawVideo(MediaPlayer, Rect)

Hiermee tekent u een video in de opgegeven regio.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
Pop()

Hiermee wordt het laatste ondoorzichtigheidsmasker, de dekking, de clip, het effect of de transformatiebewerking weergegeven die naar de tekencontext is gepusht.

PushClip(Geometry)

Hiermee wordt het opgegeven clipgebied naar de tekencontext gepusht.

PushEffect(BitmapEffect, BitmapEffectInput)
Verouderd.

Hiermee wordt de opgegeven BitmapEffect naar de tekencontext gepusht.

PushGuidelineSet(GuidelineSet)

Hiermee wordt de opgegeven GuidelineSet naar de tekencontext gepusht.

PushOpacity(Double, AnimationClock)

Hiermee wordt de opgegeven dekkingsinstelling naar de tekencontext gepusht en wordt de opgegeven animatieklok toegepast.

PushOpacity(Double)

Hiermee wordt de opgegeven dekkingsinstelling naar de tekencontext gepusht.

PushOpacityMask(Brush)

Hiermee wordt het opgegeven dekkingsmasker naar de tekencontext gepusht.

PushTransform(Transform)

Hiermee wordt de opgegeven Transform naar de tekencontext gepusht.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)
VerifyAccess()

Hiermee wordt afgedwongen dat de aanroepende thread toegang heeft tot dit DispatcherObject.

(Overgenomen van DispatcherObject)
VerifyApiNonstructuralChange()

Dit lid ondersteunt de WPF infrastructuur en is niet bedoeld om rechtstreeks vanuit uw code te worden gebruikt.

Expliciete interface-implementaties

Name Description
IDisposable.Dispose()

Dit lid ondersteunt de Windows Presentation Foundation -infrastructuur (WPF) en is niet bedoeld om rechtstreeks vanuit uw code te worden gebruikt.

Van toepassing op

Zie ook