DrawingContext Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Descreve conteúdo visual usando comandos de puxar, empurrar e estourar.
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 a DrawingContext de a 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 seguinte demonstra o PushOpacity comando. O DrawingContext é obtido a partir de um DrawingGroup e apresentado usando um Image controlo.
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
Observações
Use a DrawingContext para preencher a Visual ou a Drawing com conteúdo visual.
Embora os DrawingContext métodos de desenho sejam semelhantes aos métodos de desenho do System.Drawing.Graphics tipo, funcionam de forma muito diferente: DrawingContext é usado com um sistema gráfico em modo retido, enquanto o System.Drawing.Graphics tipo é usado com um sistema gráfico em modo imediato. Quando usas os comandos de desenho de um DrawingContext objeto, estás na verdade a guardar um conjunto de instruções de renderização (embora o mecanismo exato de armazenamento dependa do tipo de objeto que fornece o DrawingContext) que serão posteriormente usadas pelo sistema gráfico; não estás a desenhar no ecrã em tempo real. Para mais informações sobre como funciona o sistema gráfico Windows Presentation Foundation (WPF), consulte WPF Graphics Rendering Overview.
Você nunca instancia diretamente um DrawingContext; no entanto, pode adquirir um contexto de desenho a partir de certos métodos, como DrawingGroup.Open e DrawingVisual.RenderOpen.
Propriedades
| Name | Description |
|---|---|
| Dispatcher |
Percebe o Dispatcher que isto DispatcherObject está associado. (Herdado de DispatcherObject) |
Métodos
| Name | Description |
|---|---|
| CheckAccess() |
Determina se o thread que chama tem acesso a este DispatcherObject. (Herdado de DispatcherObject) |
| Close() |
Fecha o DrawingContext e despeja o conteúdo. Depois, não DrawingContext podem ser modificados. |
| DisposeCore() |
Liberta todos os recursos utilizados pelo DrawingContext. |
| DrawDrawing(Drawing) |
Desenha o objeto especificado Drawing . |
| DrawEllipse(Brush, Pen, Point, AnimationClock, Double, AnimationClock, Double, AnimationClock) |
Desenha uma elipse com os relógios de animação especificados Brush e Pen aplica. |
| 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 para a 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) |
Traça 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) |
Traça uma linha entre os pontos especificados usando o .Pen |
| DrawRectangle(Brush, Pen, Rect, AnimationClock) |
Desenha um retângulo com os relógios de animação especificados Brush e Pen aplica. |
| DrawRectangle(Brush, Pen, Rect) |
Desenha um retângulo com os especificados 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 os relógios de animação especificados Brush e Pen aplica. |
| DrawRoundedRectangle(Brush, Pen, Rect, Double, Double) |
Desenha um retângulo arredondado com o especificado Brush e Pen. |
| DrawText(FormattedText, Point) |
Desenha texto formatado na localização especificada. |
| DrawVideo(MediaPlayer, Rect, AnimationClock) |
Desenha um vídeo para a região especificada e aplica o relógio de animação especificado. |
| DrawVideo(MediaPlayer, Rect) |
Desenha um vídeo para a região especificada. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| Pop() |
Aparece a última máscara de opacidade, opacidade, clip, efeito ou operação de transformação que foi empurrada para o contexto de desenho. |
| PushClip(Geometry) |
Empurra a região do clip especificada para o contexto de desenho. |
| PushEffect(BitmapEffect, BitmapEffectInput) |
Obsoleto.
Empurra o especificado BitmapEffect para o contexto de desenho. |
| PushGuidelineSet(GuidelineSet) |
Empurra o especificado GuidelineSet para o contexto de desenho. |
| PushOpacity(Double, AnimationClock) |
Empurra a definição de opacidade especificada para o contexto de desenho e aplica o relógio de animação especificado. |
| PushOpacity(Double) |
Empurra a definição de opacidade especificada para o contexto de desenho. |
| PushOpacityMask(Brush) |
Empurra a máscara de opacidade especificada para o contexto de desenho. |
| PushTransform(Transform) |
Empurra o especificado Transform para o contexto de desenho. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| VerifyAccess() |
Faz cumprir que o thread que chama tem acesso a este DispatcherObject. (Herdado de DispatcherObject) |
| VerifyApiNonstructuralChange() |
Este membro suporta a infraestrutura WPF e não se destina a ser usado diretamente a partir do seu código. |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Este membro suporta a infraestrutura Windows Presentation Foundation (WPF) e não foi concebido para ser usado diretamente a partir do seu código. |