DrawingContext Klasa

Definicja

Opisuje wizualną zawartość za pomocą poleceń rysowania, wypychania i pop.Describes visual content using draw, push, and pop commands.

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
Dziedziczenie
DrawingContext
Implementuje

Przykłady

Poniższy przykład pobiera a DrawingContext z DrawingVisual i używa go do rysowania prostokąta.The following example retrieves a DrawingContext from a DrawingVisual and uses it to draw a rectangle.

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

W następnym przykładzie pokazano PushOpacity polecenia, PushEffect i Pop .The next example demonstrates the PushOpacity, PushEffect, and Pop commands. DrawingContextJest uzyskiwany z DrawingGroup i wyświetlany przy użyciu Image kontrolki.The DrawingContext is obtained from a DrawingGroup and displayed using an Image control.

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

Uwagi

Użyj, DrawingContext Aby wypełnić Visual Drawing zawartość wizualną lub.Use a DrawingContext to populate a Visual or a Drawing with visual content.

Chociaż DrawingContext metody rysowania wyglądają podobnie jak metody rysowania System.Drawing.Graphics typu, działają bardzo inaczej: DrawingContext jest używana z systemem graficznym trybu zachowywania, podczas gdy System.Drawing.Graphics Typ jest używany z systemem graficznym trybu natychmiastowego.Although the DrawingContext draw methods appear similar to the draw methods of the System.Drawing.Graphics type, they function very differently: DrawingContext is used with a retained mode graphics system, while the System.Drawing.Graphics type is used with an immediate mode graphics system. W przypadku korzystania z DrawingContext poleceń rysowania obiektu w rzeczywistości przechowujesz zestaw instrukcji renderowania (Chociaż dokładny mechanizm magazynowania zależy od typu obiektu, który dostarcza DrawingContext ), który będzie później używany przez system grafiki. nie można narysować na ekranie w czasie rzeczywistym.When you use a DrawingContext object's draw commands, you are actually storing a set of rendering instructions (although the exact storage mechanism depends on the type of object that supplies the DrawingContext) that will later be used by the graphics system; you are not drawing to the screen in real-time. Aby uzyskać więcej informacji na temat działania systemu grafiki Windows Presentation Foundation (WPF), zobacz Omówienie renderowania grafiki WPF.For more information about how the Windows Presentation Foundation (WPF) graphics system works, see WPF Graphics Rendering Overview.

Nigdy nie tworzysz bezpośrednio wystąpienia DrawingContext . Możesz jednak uzyskać kontekst rysowania z określonych metod, takich jak DrawingGroup.Open i DrawingVisual.RenderOpen .You never directly instantiate a DrawingContext; you can, however, acquire a drawing context from certain methods, such as DrawingGroup.Open and DrawingVisual.RenderOpen.

Właściwości

Dispatcher

Pobiera Dispatcher ten DispatcherObject program jest skojarzony z.Gets the Dispatcher this DispatcherObject is associated with.

(Odziedziczone po DispatcherObject)

Metody

CheckAccess()

Określa, czy wątek wywołujący ma dostęp do tego DispatcherObject .Determines whether the calling thread has access to this DispatcherObject.

(Odziedziczone po DispatcherObject)
Close()

Zamyka DrawingContext i opróżnia zawartość.Closes the DrawingContext and flushes the content. Później DrawingContext nie można modyfikować.Afterward, the DrawingContext cannot be modified.

DisposeCore()

Zwalnia wszelkie zasoby używane przez element DrawingContext.Releases all resources used by the DrawingContext.

DrawDrawing(Drawing)

Rysuje określony Drawing obiekt.Draws the specified Drawing object.

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

Rysuje elipsę z określonym Brush i Pen i stosuje określone zegary animacji.Draws an ellipse with the specified Brush and Pen and applies the specified animation clocks.

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

Rysuje elipsę z określonym Brush i Pen .Draws an ellipse with the specified Brush and Pen.

DrawGeometry(Brush, Pen, Geometry)

Rysuje określony Geometry przy użyciu określonych Brush i Pen .Draws the specified Geometry using the specified Brush and Pen.

DrawGlyphRun(Brush, GlyphRun)

Rysuje określony tekst.Draws the specified text.

DrawImage(ImageSource, Rect)

Rysuje obraz w regionie zdefiniowanym przez określony Rect .Draws an image into the region defined by the specified Rect.

DrawImage(ImageSource, Rect, AnimationClock)

Rysuje obraz w regionie zdefiniowanym przez określony Rect i stosuje określony zegar animacji.Draws an image into the region defined by the specified Rect and applies the specified animation clock.

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

Rysuje linię między określonymi punktami przy użyciu określonego Pen i stosuje określone zegary animacji.Draws a line between the specified points using the specified Pen and applies the specified animation clocks.

DrawLine(Pen, Point, Point)

Rysuje linię między określonymi punktami przy użyciu określonego Pen .Draws a line between the specified points using the specified Pen.

DrawRectangle(Brush, Pen, Rect)

Rysuje prostokąt z określonym Brush i Pen .Draws a rectangle with the specified Brush and Pen. Może to być pióro i Pędzel null .The pen and the brush can be null.

DrawRectangle(Brush, Pen, Rect, AnimationClock)

Rysuje prostokąt z określonym Brush i Pen i stosuje określone zegary animacji.Draws a rectangle with the specified Brush and Pen and applies the specified animation clocks.

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

Rysuje zaokrąglony prostokąt z określonym Brush i Pen i stosuje określone zegary animacji.Draws a rounded rectangle with the specified Brush and Pen and applies the specified animation clocks.

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

Rysuje zaokrąglony prostokąt z określonym Brush i Pen .Draws a rounded rectangle with the specified Brush and Pen.

DrawText(FormattedText, Point)

Rysuje sformatowany tekst w określonej lokalizacji.Draws formatted text at the specified location.

DrawVideo(MediaPlayer, Rect)

Rysuje wideo w określonym regionie.Draws a video into the specified region.

DrawVideo(MediaPlayer, Rect, AnimationClock)

Rysuje wideo w określonym regionie i stosuje określony zegar animacji.Draws a video into the specified region and applies the specified animation clock.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
Pop()

Pop ostatnią nieprzezroczystą maskę, nieprzezroczystość, wycinek, efekt lub transformację, która została przekazana do kontekstu rysowania.Pops the last opacity mask, opacity, clip, effect, or transform operation that was pushed onto the drawing context.

PushClip(Geometry)

Wypchnij określony region przycinania do kontekstu rysowania.Pushes the specified clip region onto the drawing context.

PushEffect(BitmapEffect, BitmapEffectInput)
Nieaktualne.

Wypchnięcie określonego elementu BitmapEffect do kontekstu rysowania.Pushes the specified BitmapEffect onto the drawing context.

PushGuidelineSet(GuidelineSet)

Wypchnięcie określonego elementu GuidelineSet do kontekstu rysowania.Pushes the specified GuidelineSet onto the drawing context.

PushOpacity(Double)

Wypchnięcie określonego ustawienia zmętnienia do kontekstu rysowania.Pushes the specified opacity setting onto the drawing context.

PushOpacity(Double, AnimationClock)

Wypchnięcie określonego ustawienia zmętnienia do kontekstu rysowania i stosuje określony zegar animacji.Pushes the specified opacity setting onto the drawing context and applies the specified animation clock.

PushOpacityMask(Brush)

Wypchnij określoną maskę nieprzezroczystość do kontekstu rysowania.Pushes the specified opacity mask onto the drawing context.

PushTransform(Transform)

Wypchnięcie określonego elementu Transform do kontekstu rysowania.Pushes the specified Transform onto the drawing context.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)
VerifyAccess()

Wymusza, że wątek wywołujący ma dostęp do tego DispatcherObject .Enforces that the calling thread has access to this DispatcherObject.

(Odziedziczone po DispatcherObject)
VerifyApiNonstructuralChange()

Ten element członkowski obsługuje infrastrukturę WPF i nie jest przeznaczony do użycia bezpośrednio w kodzie.This member supports the WPF infrastructure and is not intended to be used directly from your code.

Jawne implementacje interfejsu

IDisposable.Dispose()

Ten element członkowski obsługuje infrastrukturę Windows Presentation Foundation (WPF) i nie jest przeznaczony do użycia bezpośrednio w kodzie.This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

Dotyczy

Zobacz też