DrawingContext Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
A vizuális tartalmakat rajz- és leküldéses és pop-parancsokkal ismerteti.
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
- Öröklődés
- Megvalósítás
Példák
Az alábbi példa lekér egy DrawingContext a DrawingVisual-ból, és egy téglalap rajzolásához használja.
// 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
A következő példa a PushOpacity parancsot mutatja be. A DrawingContext lekért DrawingGroup és egy vezérlővel Image megjeleníthető.
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
Megjegyzések
DrawingContext Egy vagy több vizualizáció tartalommal való feltöltéséhez Visual használjon egy vagy több Drawing elemet.
Bár a DrawingContext rajzolási módszerek a típus rajzolási módszereihez System.Drawing.Graphics hasonlóan jelennek meg, nagyon eltérően működnek: DrawingContext megtartott módú grafikus rendszer esetén használják, míg a System.Drawing.Graphics típust azonnali módú grafikus rendszerrel használják. Amikor egy DrawingContext objektum rajzparancsait használja, valójában renderelési utasítások készletét tárolja (bár a pontos tárolási mechanizmus attól függ, hogy a grafikus rendszer milyen típusú objektumot biztosít DrawingContext, amelyet később a grafikus rendszer használni fog; nem valós időben rajzol a képernyőre. A Windows megjelenítési alaprendszer (WPF) grafikus rendszer működésével kapcsolatos további információkért lásd: WPF Grafikus megjelenítés áttekintése.
Soha ne példányosíts közvetlenül DrawingContext; azonban bizonyos metódusokból, például DrawingGroup.Open és DrawingVisual.RenderOpenis beszerezhet egy rajzkörnyezetet.
Tulajdonságok
| Name | Description |
|---|---|
| Dispatcher |
Lekérdezi, Dispatcher hogy ez a társítva van-e DispatcherObject . (Öröklődés forrása DispatcherObject) |
Metódusok
| Name | Description |
|---|---|
| CheckAccess() |
Meghatározza, hogy a hívó szál hozzáfér-e ehhez DispatcherObject. (Öröklődés forrása DispatcherObject) |
| Close() |
Bezárja a DrawingContext tartalmat, és kiüríti a tartalmat. Ezt követően az DrawingContext nem módosítható. |
| DisposeCore() |
Felszabadítja a .-hez használt összes erőforrást DrawingContext. |
| DrawDrawing(Drawing) |
A megadott Drawing objektum rajzolása. |
| DrawEllipse(Brush, Pen, Point, AnimationClock, Double, AnimationClock, Double, AnimationClock) |
A megadott Brush három pontot rajzolja meg, és Pen alkalmazza a megadott animációs órákat. |
| DrawEllipse(Brush, Pen, Point, Double, Double) | |
| DrawGeometry(Brush, Pen, Geometry) | |
| DrawGlyphRun(Brush, GlyphRun) |
A megadott szöveg rajzolása. |
| DrawImage(ImageSource, Rect, AnimationClock) |
Képet rajzol a megadott Rect régióba, és alkalmazza a megadott animációs órát. |
| DrawImage(ImageSource, Rect) |
Képet rajzol a megadott Rectrégióba. |
| DrawLine(Pen, Point, AnimationClock, Point, AnimationClock) |
Vonal rajzolása a megadott pontok között a megadott Pen és a megadott animációs órák alkalmazásával. |
| DrawLine(Pen, Point, Point) |
Vonal rajzolása a megadott pontok között a megadott Penhasználatával. |
| DrawRectangle(Brush, Pen, Rect, AnimationClock) |
Téglalapot rajzol a megadottal Brush , és Pen alkalmazza a megadott animációs órákat. |
| DrawRectangle(Brush, Pen, Rect) |
Téglalap rajzolása a megadott Brush és Pena . A toll és az ecset lehet |
| DrawRoundedRectangle(Brush, Pen, Rect, AnimationClock, Double, AnimationClock, Double, AnimationClock) |
Lekerekített téglalapot rajzol a megadottal Brush , és Pen alkalmazza a megadott animációs órákat. |
| DrawRoundedRectangle(Brush, Pen, Rect, Double, Double) | |
| DrawText(FormattedText, Point) |
Formázott szöveget rajzol a megadott helyen. |
| DrawVideo(MediaPlayer, Rect, AnimationClock) |
Berajzol egy videót a megadott régióba, és alkalmazza a megadott animációs órát. |
| DrawVideo(MediaPlayer, Rect) |
Videó rajzolása a megadott régióba. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| Pop() |
A rajzkörnyezetbe leküldött utolsó átlátszatlansági maszk, átlátszatlanság, klip, effektus vagy átalakítás művelet megnyitása. |
| PushClip(Geometry) |
Leküldi a megadott klipterületet a rajzkörnyezetbe. |
| PushEffect(BitmapEffect, BitmapEffectInput) |
Elavult.
Leküldi a megadottt BitmapEffect a rajzkörnyezetbe. |
| PushGuidelineSet(GuidelineSet) |
Leküldi a megadottt GuidelineSet a rajzkörnyezetbe. |
| PushOpacity(Double, AnimationClock) |
Leküldi a megadott átlátszatlansági beállítást a rajzkörnyezetbe, és alkalmazza a megadott animációs órát. |
| PushOpacity(Double) |
Leküldi a megadott átlátszatlansági beállítást a rajzkörnyezetbe. |
| PushOpacityMask(Brush) |
Leküldi a megadott opacitásmaszkot a rajzkörnyezetbe. |
| PushTransform(Transform) |
Leküldi a megadottt Transform a rajzkörnyezetbe. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
| VerifyAccess() |
Kényszeríti, hogy a hívószál hozzáférhessen ehhez.DispatcherObject (Öröklődés forrása DispatcherObject) |
| VerifyApiNonstructuralChange() |
Ez a tag támogatja a WPF infrastruktúrát, és nem közvetlenül a kódból való használatra szolgál. |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Ez a tag támogatja a Windows megjelenítési alaprendszer (WPF) infrastruktúrát, és nem közvetlenül a kódból való használatra szolgál. |