DrawingContext Classe

Definizione

Descrive il contenuto visivo utilizzando comandi di disegno, inserimento ed estrazione.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
Ereditarietà
DrawingContext
Implementazioni

Esempi

Nell'esempio seguente viene recuperato DrawingContext un oggetto DrawingVisual da un oggetto e viene utilizzato per creare un rettangolo.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

Nell'esempio seguente vengono illustrati i PushOpacitycomandi Pop , PushEffecte.The next example demonstrates the PushOpacity, PushEffect, and Pop commands. L' DrawingContext oggetto viene ottenuto da DrawingGroup un oggetto e visualizzato Image utilizzando un controllo.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

Commenti

Usare un DrawingContext oggetto per popolare Visual un oggetto Drawing o con contenuto visivo.Use a DrawingContext to populate a Visual or a Drawing with visual content.

Sebbene i DrawingContext System.Drawing.Graphics metodi di richiamo siano simili ai metodi di richiamo del tipo, funzionano in modo molto diverso DrawingContext : viene usato con un sistema grafico in modalità mantenuta System.Drawing.Graphics , mentre il tipo viene usato con una modalità immediata sistema grafico.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. Quando si usano i DrawingContext comandi di progetto di un oggetto, si archivia effettivamente un set di istruzioni per il rendering (sebbene il meccanismo di archiviazione esatto dipenda dal tipo di DrawingContextoggetto che fornisce) che verrà usato in un secondo momento dal sistema grafico; non vengono disegnati sullo schermo in tempo reale.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. Per ulteriori informazioni sul funzionamento del sistema grafico Windows Presentation Foundation (WPF), vedere Cenni preliminari sul rendering della grafica WPF.For more information about how the Windows Presentation Foundation (WPF) graphics system works, see WPF Graphics Rendering Overview.

Non è mai possibile creare direttamente DrawingContextun'istanza di. è tuttavia possibile acquisire un contesto di disegno da determinati metodi, DrawingGroup.Open ad DrawingVisual.RenderOpenesempio e.You never directly instantiate a DrawingContext; you can, however, acquire a drawing context from certain methods, such as DrawingGroup.Open and DrawingVisual.RenderOpen.

Proprietà

Dispatcher

Ottiene l'oggetto Dispatcher associato a DispatcherObject.Gets the Dispatcher this DispatcherObject is associated with.

(Ereditato da DispatcherObject)

Metodi

CheckAccess()

Determina se il thread chiamante ha accesso a DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

(Ereditato da DispatcherObject)
Close()

Chiude l'oggetto DrawingContext e scarica il contenuto.Closes the DrawingContext and flushes the content. In seguito non sarà possibile modificare l'oggetto DrawingContext.Afterward, the DrawingContext cannot be modified.

DisposeCore()

Rilascia tutte le risorse usate da DrawingContext.Releases all resources used by the DrawingContext.

DrawDrawing(Drawing)

Disegna l'oggetto Drawing specificato.Draws the specified Drawing object.

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

Disegna un'ellisse con gli oggetti Brush e Pen specificati e applica i clock di animazione definiti.Draws an ellipse with the specified Brush and Pen and applies the specified animation clocks.

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

Disegna un'ellisse con gli oggetti Brush e Pen specificati.Draws an ellipse with the specified Brush and Pen.

DrawGeometry(Brush, Pen, Geometry)

Disegna l'oggetto Geometry specificato utilizzando gli oggetti Brush e Pen definiti.Draws the specified Geometry using the specified Brush and Pen.

DrawGlyphRun(Brush, GlyphRun)

Disegna il testo specificato.Draws the specified text.

DrawImage(ImageSource, Rect)

Disegna un'immagine nell'area definita dall'oggetto Rect specificato.Draws an image into the region defined by the specified Rect.

DrawImage(ImageSource, Rect, AnimationClock)

Disegna un'immagine nell'area definita dall'oggetto Rect specificato e applica il clock di animazione specificato.Draws an image into the region defined by the specified Rect and applies the specified animation clock.

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

Disegna una linea tra i punti specificati utilizzando l'oggetto Pen definito e applica i clock di animazione specificati.Draws a line between the specified points using the specified Pen and applies the specified animation clocks.

DrawLine(Pen, Point, Point)

Disegna una linea tra i punti specificati utilizzando l'oggetto Pen specificato.Draws a line between the specified points using the specified Pen.

DrawRectangle(Brush, Pen, Rect)

Disegna un rettangolo con gli oggetti Brush e Pen specificati.Draws a rectangle with the specified Brush and Pen. La penna e il pennello possono essere entrambi impostati su null.The pen and the brush can be null.

DrawRectangle(Brush, Pen, Rect, AnimationClock)

Disegna un rettangolo con gli oggetti Brush e Pen specificati e applica i clock di animazione definiti.Draws a rectangle with the specified Brush and Pen and applies the specified animation clocks.

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

Disegna un rettangolo arrotondato con gli oggetti Brush e Pen specificati e applica i clock di animazione definiti.Draws a rounded rectangle with the specified Brush and Pen and applies the specified animation clocks.

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

Disegna un rettangolo arrotondato con gli oggetti Brush e Pen specificati.Draws a rounded rectangle with the specified Brush and Pen.

DrawText(FormattedText, Point)

Disegna il testo formattato nella posizione specificata.Draws formatted text at the specified location.

DrawVideo(MediaPlayer, Rect)

Crea un video nell'area specificata.Draws a video into the specified region.

DrawVideo(MediaPlayer, Rect, AnimationClock)

Crea un video nell'area specificata e applica il clock di animazione definito.Draws a video into the specified region and applies the specified animation clock.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
Pop()

Estrae l'ultima operazione relativa a una maschera di opacità, all'opacità, al ridimensionamento, a un effetto o una trasformazione inserita nel contesto del disegno.Pops the last opacity mask, opacity, clip, effect, or transform operation that was pushed onto the drawing context.

PushClip(Geometry)

Inserisce l'area di ridimensionamento specificata nel contesto del disegno.Pushes the specified clip region onto the drawing context.

PushEffect(BitmapEffect, BitmapEffectInput)

Inserisce l'oggetto BitmapEffect specificato nel contesto del disegno.Pushes the specified BitmapEffect onto the drawing context.

PushGuidelineSet(GuidelineSet)

Inserisce l'oggetto GuidelineSet specificato nel contesto del disegno.Pushes the specified GuidelineSet onto the drawing context.

PushOpacity(Double)

Inserisce l'impostazione di opacità specificata nel contesto del disegno.Pushes the specified opacity setting onto the drawing context.

PushOpacity(Double, AnimationClock)

Inserisce l'impostazione di opacità specificata nel contesto del disegno e applica il clock di animazione definito.Pushes the specified opacity setting onto the drawing context and applies the specified animation clock.

PushOpacityMask(Brush)

Inserisce la maschera di opacità specificata nel contesto del disegno.Pushes the specified opacity mask onto the drawing context.

PushTransform(Transform)

Inserisce l'oggetto Transform specificato nel contesto del disegno.Pushes the specified Transform onto the drawing context.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)
VerifyAccess()

Impone che il thread chiamante abbia accesso a DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

(Ereditato da DispatcherObject)
VerifyApiNonstructuralChange()

Questo membro supporta l'infrastruttura di WPFWPF e non deve essere usato direttamente dal codice.This member supports the WPFWPF infrastructure and is not intended to be used directly from your code.

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Questo membro supporta l'infrastruttura di Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) e non deve essere usato direttamente dal codice.This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

Si applica a

Vedi anche