DrawingContext Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Descrive il contenuto visivo usando i comandi draw, push e 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
- Ereditarietà
- Implementazioni
Esempio
Nell'esempio seguente viene recuperato un DrawingContext oggetto da un DrawingVisual oggetto e viene utilizzato per disegnare un rettangolo.
// 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 , PushEffecte Pop . L'oggetto DrawingContext viene ottenuto da un DrawingGroup oggetto e visualizzato utilizzando un Image controllo .
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 un Visual oggetto o con Drawing contenuto visivo.
Anche se i DrawingContext metodi di disegno appaiono simili ai metodi di disegno del System.Drawing.Graphics tipo, funzionano in modo molto diverso: DrawingContext viene usato con un sistema grafico in modalità mantenuta, mentre il System.Drawing.Graphics tipo viene usato con un sistema grafico in modalità immediata. Quando si usano i comandi di disegno di un DrawingContext oggetto, si archivia effettivamente un set di istruzioni di rendering (anche se il meccanismo di archiviazione esatto dipende dal tipo di oggetto che fornisce ) DrawingContextche verrà usato successivamente dal sistema grafico; non si sta disegnando sullo schermo in tempo reale. Per altre informazioni sul funzionamento del sistema grafico Windows Presentation Foundation (WPF), vedere Cenni preliminari sul rendering della grafica WPF.
Non è mai possibile creare direttamente un'istanza di . DrawingContextÈ tuttavia possibile acquisire un contesto di disegno da determinati metodi, ad esempio DrawingGroup.Open e DrawingVisual.RenderOpen.
Proprietà
Dispatcher |
Ottiene l'oggetto Dispatcher associato a DispatcherObject. (Ereditato da DispatcherObject) |
Metodi
CheckAccess() |
Determina se il thread chiamante ha accesso a DispatcherObject. (Ereditato da DispatcherObject) |
Close() |
Chiude l'oggetto DrawingContext e scarica il contenuto. In seguito non sarà possibile modificare l'oggetto DrawingContext. |
DisposeCore() |
Rilascia tutte le risorse usate da DrawingContext. |
DrawDrawing(Drawing) |
Disegna l'oggetto Drawing specificato. |
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. |
DrawEllipse(Brush, Pen, Point, Double, Double) | |
DrawGeometry(Brush, Pen, Geometry) |
Disegna l'oggetto Geometry usando gli oggetti Brush e Pen specificati. |
DrawGlyphRun(Brush, GlyphRun) |
Disegna il testo specificato. |
DrawImage(ImageSource, Rect) |
Disegna un'immagine nell'area definita dall'oggetto Rect specificato. |
DrawImage(ImageSource, Rect, AnimationClock) |
Disegna un'immagine nell'area definita dall'oggetto Rect specificato e applica il clock di animazione specificato. |
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. |
DrawLine(Pen, Point, Point) |
Disegna una linea tra i punti specificati utilizzando l'oggetto Pen specificato. |
DrawRectangle(Brush, Pen, Rect) |
Disegna un rettangolo con gli oggetti Brush e Pen specificati. La penna e il pennello possono essere entrambi impostati su |
DrawRectangle(Brush, Pen, Rect, AnimationClock) |
Disegna un rettangolo con gli oggetti Brush e Pen specificati e applica i clock di animazione definiti. |
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. |
DrawRoundedRectangle(Brush, Pen, Rect, Double, Double) |
Disegna un rettangolo arrotondato con gli oggetti Brush e Pen specificati. |
DrawText(FormattedText, Point) |
Disegna il testo formattato nella posizione specificata. |
DrawVideo(MediaPlayer, Rect) |
Crea un video nell'area specificata. |
DrawVideo(MediaPlayer, Rect, AnimationClock) |
Crea un video nell'area specificata e applica il clock di animazione definito. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (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. |
PushClip(Geometry) |
Inserisce l'area di ridimensionamento specificata nel contesto del disegno. |
PushEffect(BitmapEffect, BitmapEffectInput) |
Obsoleta.
Inserisce l'oggetto BitmapEffect specificato nel contesto del disegno. |
PushGuidelineSet(GuidelineSet) |
Inserisce l'oggetto GuidelineSet specificato nel contesto del disegno. |
PushOpacity(Double) |
Inserisce l'impostazione di opacità specificata nel contesto del disegno. |
PushOpacity(Double, AnimationClock) |
Inserisce l'impostazione di opacità specificata nel contesto del disegno e applica il clock di animazione definito. |
PushOpacityMask(Brush) |
Inserisce la maschera di opacità specificata nel contesto del disegno. |
PushTransform(Transform) |
Inserisce l'oggetto Transform specificato nel contesto del disegno. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
VerifyAccess() |
Impone che il thread chiamante abbia accesso a DispatcherObject. (Ereditato da DispatcherObject) |
VerifyApiNonstructuralChange() |
Questo membro supporta l'infrastruttura WPF e non deve essere usato direttamente dal codice. |
Implementazioni dell'interfaccia esplicita
IDisposable.Dispose() |
Questo membro supporta l'infrastruttura Windows Presentation Foundation (WPF) e non deve essere usato direttamente dal codice. |