DrawingContext Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Описывает визуальное содержимое с помощью команд рисования, отправки и всплывающих окон.
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
- Наследование
- Реализации
Примеры
В следующем примере извлекается DrawingContext из DrawingVisual и используется для рисования прямоугольника.
// 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
Следующий пример демонстрирует PushOpacity команду. Получается DrawingContext из элемента DrawingGroup управления и отображается с помощью Image элемента управления.
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
Комментарии
Используйте для DrawingContext заполнения визуального Visual содержимого или его содержимого Drawing .
DrawingContext Хотя методы рисования похожи на методы System.Drawing.Graphics рисования типа, они работают очень иначе: DrawingContext используется с сохраненной графической системой режима, а System.Drawing.Graphics тип используется с графической системой немедленного режима. При использовании DrawingContext команд рисования объекта фактически сохраняется набор инструкций отрисовки (хотя точный механизм хранения зависит от типа объекта, который предоставляет DrawingContextобъект), который позже будет использоваться графической системой; вы не рисуете на экран в режиме реального времени. Дополнительные сведения о работе графической системы Windows Presentation Foundation (WPF) см. в обзоре отрисовки графики WPF.
Создать экземпляр DrawingContext напрямую невозможно, однако можно получить контекст рисования с помощью определённых методов, таких как DrawingGroup.Open и DrawingVisual.RenderOpen.
Свойства
| Имя | Описание |
|---|---|
| Dispatcher |
Dispatcher Возвращает это DispatcherObject значение, с которым связано. (Унаследовано от DispatcherObject) |
Методы
| Имя | Описание |
|---|---|
| CheckAccess() |
Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject. (Унаследовано от DispatcherObject) |
| Close() |
Закрывает содержимое DrawingContext и удаляет содержимое. DrawingContext После этого невозможно изменить. |
| DisposeCore() |
Освобождает все ресурсы, используемые параметром DrawingContext. |
| DrawDrawing(Drawing) |
Рисует указанный Drawing объект. |
| DrawEllipse(Brush, Pen, Point, AnimationClock, Double, AnimationClock, Double, AnimationClock) |
Рисует многоточие с указанным Brush и Pen применяет указанные часы анимации. |
| DrawEllipse(Brush, Pen, Point, Double, Double) | |
| DrawGeometry(Brush, Pen, Geometry) |
Рисует указанные Geometry значения с помощью указанного Brush и Pen. |
| DrawGlyphRun(Brush, GlyphRun) |
Рисует указанный текст. |
| DrawImage(ImageSource, Rect, AnimationClock) |
Рисует изображение в регион, определенный указанным Rect и применяет указанные часы анимации. |
| DrawImage(ImageSource, Rect) |
Рисует изображение в регион, определенный указанным Rect. |
| DrawLine(Pen, Point, AnimationClock, Point, AnimationClock) |
Рисует линию между указанными точками, используя указанные Pen и применяет указанные часы анимации. |
| DrawLine(Pen, Point, Point) |
Рисует линию между указанными точками, используя указанные Pen. |
| DrawRectangle(Brush, Pen, Rect, AnimationClock) |
Рисует прямоугольник с указанным Brush и Pen применяет указанные часы анимации. |
| DrawRectangle(Brush, Pen, Rect) |
Рисует прямоугольник с указанным Brush и Pen. Перо и кисть могут быть |
| DrawRoundedRectangle(Brush, Pen, Rect, AnimationClock, Double, AnimationClock, Double, AnimationClock) |
Рисует округленный прямоугольник с указанным Brush и Pen применяет указанные часы анимации. |
| DrawRoundedRectangle(Brush, Pen, Rect, Double, Double) | |
| DrawText(FormattedText, Point) |
Рисует форматированный текст в указанном расположении. |
| DrawVideo(MediaPlayer, Rect, AnimationClock) |
Рисует видео в указанный регион и применяет указанные часы анимации. |
| DrawVideo(MediaPlayer, Rect) |
Рисует видео в указанный регион. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| Pop() |
Выводит последнюю маску непрозрачности, прозрачность, клип, эффект или преобразование, которая была отправлена в контекст рисования. |
| PushClip(Geometry) |
Отправляет указанный регион клипа в контекст рисования. |
| PushEffect(BitmapEffect, BitmapEffectInput) |
Устаревшие..
Отправляет указанный BitmapEffect объект в контекст рисования. |
| PushGuidelineSet(GuidelineSet) |
Отправляет указанный GuidelineSet объект в контекст рисования. |
| PushOpacity(Double, AnimationClock) |
Отправляет указанный параметр прозрачности в контекст рисования и применяет указанные часы анимации. |
| PushOpacity(Double) |
Отправляет указанный параметр прозрачности в контекст рисования. |
| PushOpacityMask(Brush) |
Отправляет указанную маску непрозрачности в контекст рисования. |
| PushTransform(Transform) |
Отправляет указанный Transform объект в контекст рисования. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| VerifyAccess() |
Принудительно применяет, что вызывающий поток имеет доступ к этому DispatcherObject. (Унаследовано от DispatcherObject) |
| VerifyApiNonstructuralChange() |
Этот член поддерживает инфраструктуру WPF и не предназначен для использования непосредственно из кода. |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IDisposable.Dispose() |
Этот член поддерживает инфраструктуру Windows Presentation Foundation (WPF) и не предназначен для использования непосредственно из кода. |