DrawingContext Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Descreve o conteúdo visual usando comandos de desenho, 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
- Herança
- Implementações
Exemplos
O exemplo a seguir recupera um DrawingContext de um DrawingVisual e o usa para desenhar um retângulo.
// 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
O exemplo a seguir demonstra o PushOpacity comando. Ele DrawingContext é obtido de um DrawingGroup e exibido usando um Image controle.
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
Comentários
Use um DrawingContext para preencher um Visual ou um Drawing com conteúdo visual.
Embora os DrawingContext métodos de desenho pareçam semelhantes aos métodos de desenho do System.Drawing.Graphics tipo, eles funcionam de forma muito diferente: DrawingContext é usado com um sistema gráfico de modo retido, enquanto o System.Drawing.Graphics tipo é usado com um sistema gráfico de modo imediato. Ao usar os comandos de desenho de um DrawingContext objeto, você está armazenando um conjunto de instruções de renderização (embora o mecanismo de armazenamento exato dependa do tipo de objeto que fornece o DrawingContext) que posteriormente será usado pelo sistema gráfico; você não está desenhando para a tela em tempo real. Para obter mais informações sobre como o sistema de gráficos WPF (Windows Presentation Foundation) funciona, consulte a Visão geral da renderização de gráficos do WPF.
Você nunca instancia diretamente um DrawingContext; no entanto, você pode obter um contexto de desenho de determinados métodos, como DrawingGroup.Open e DrawingVisual.RenderOpen.
Propriedades
| Nome | Description |
|---|---|
| Dispatcher |
Obtém o Dispatcher que DispatcherObject está associado. (Herdado de DispatcherObject) |
Métodos
| Nome | Description |
|---|---|
| CheckAccess() |
Determina se o thread de chamada tem acesso a isso DispatcherObject. (Herdado de DispatcherObject) |
| Close() |
Fecha e DrawingContext libera o conteúdo. Posteriormente, o DrawingContext não pode ser modificado. |
| DisposeCore() |
Libera todos os recursos usados pelo DrawingContext. |
| DrawDrawing(Drawing) |
Desenha o objeto especificado Drawing . |
| DrawEllipse(Brush, Pen, Point, AnimationClock, Double, AnimationClock, Double, AnimationClock) |
Desenha uma reticência com o especificado Brush e Pen aplica os relógios de animação especificados. |
| DrawEllipse(Brush, Pen, Point, Double, Double) | |
| DrawGeometry(Brush, Pen, Geometry) |
Desenha o especificado Geometry usando o especificado Brush e Pen. |
| DrawGlyphRun(Brush, GlyphRun) |
Desenha o texto especificado. |
| DrawImage(ImageSource, Rect, AnimationClock) |
Desenha uma imagem na região definida pelo especificado Rect e aplica o relógio de animação especificado. |
| DrawImage(ImageSource, Rect) |
Desenha uma imagem na região definida pelo especificado Rect. |
| DrawLine(Pen, Point, AnimationClock, Point, AnimationClock) |
Desenha uma linha entre os pontos especificados usando os relógios de animação especificados Pen e aplica os relógios de animação especificados. |
| DrawLine(Pen, Point, Point) |
Desenha uma linha entre os pontos especificados usando o especificado Pen. |
| DrawRectangle(Brush, Pen, Rect, AnimationClock) |
Desenha um retângulo com o especificado Brush e Pen aplica os relógios de animação especificados. |
| DrawRectangle(Brush, Pen, Rect) |
Desenha um retângulo com o especificado Brush e Pen. A caneta e o pincel podem ser |
| DrawRoundedRectangle(Brush, Pen, Rect, AnimationClock, Double, AnimationClock, Double, AnimationClock) |
Desenha um retângulo arredondado com o especificado Brush e Pen aplica os relógios de animação especificados. |
| DrawRoundedRectangle(Brush, Pen, Rect, Double, Double) |
Desenha um retângulo arredondado com o especificado Brush e Pen. |
| DrawText(FormattedText, Point) |
Desenha texto formatado no local especificado. |
| DrawVideo(MediaPlayer, Rect, AnimationClock) |
Desenha um vídeo na região especificada e aplica o relógio de animação especificado. |
| DrawVideo(MediaPlayer, Rect) |
Desenha um vídeo na região especificada. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| Pop() |
Exibe a última máscara de opacidade, opacidade, clipe, efeito ou operação de transformação que foi enviada por push para o contexto de desenho. |
| PushClip(Geometry) |
Envia por push a região de clipe especificada para o contexto de desenho. |
| PushEffect(BitmapEffect, BitmapEffectInput) |
Obsoleto.
Envia por push o especificado BitmapEffect para o contexto de desenho. |
| PushGuidelineSet(GuidelineSet) |
Envia por push o especificado GuidelineSet para o contexto de desenho. |
| PushOpacity(Double, AnimationClock) |
Envia por push a configuração de opacidade especificada para o contexto de desenho e aplica o relógio de animação especificado. |
| PushOpacity(Double) |
Envia por push a configuração de opacidade especificada para o contexto de desenho. |
| PushOpacityMask(Brush) |
Envia a máscara de opacidade especificada para o contexto de desenho. |
| PushTransform(Transform) |
Envia por push o especificado Transform para o contexto de desenho. |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
| VerifyAccess() |
Impõe que o thread de chamada tenha acesso a isso DispatcherObject. (Herdado de DispatcherObject) |
| VerifyApiNonstructuralChange() |
Esse membro dá suporte à infraestrutura do WPF e não se destina a ser usado diretamente do seu código. |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IDisposable.Dispose() |
Esse membro dá suporte à infraestrutura do WPF (Windows Presentation Foundation) e não se destina a ser usado diretamente do seu código. |