DrawingContext Kelas

Definisi

Menjelaskan konten visual menggunakan perintah gambar, dorong, dan 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
Warisan
DrawingContext
Penerapan

Contoh

Contoh berikut mengambil DrawingContext dari DrawingVisual dan menggunakannya untuk menggambar persegi panjang.

// 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

Contoh berikutnya menunjukkan PushOpacity perintah . diperoleh DrawingContext dari DrawingGroup dan ditampilkan menggunakan Image kontrol.

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

Keterangan

DrawingContext Gunakan untuk mengisi Visual atau Drawing dengan konten visual.

DrawingContext Meskipun metode gambar tampak mirip dengan metode gambar dari jenisnyaSystem.Drawing.Graphics, metode tersebut berfungsi sangat berbeda: DrawingContext digunakan dengan sistem grafis mode yang dipertahankan, sementara System.Drawing.Graphics jenisnya digunakan dengan sistem grafis mode langsung. Ketika Anda menggunakan DrawingContext perintah gambar objek, Anda benar-benar menyimpan serangkaian instruksi penyajian (meskipun mekanisme penyimpanan yang tepat tergantung pada jenis objek yang memasok DrawingContext) yang nantinya akan digunakan oleh sistem grafis; Anda tidak menggambar ke layar secara real time. Untuk informasi selengkapnya tentang cara kerja sistem grafis Windows Presentation Foundation (WPF), lihat Gambaran Umum Penyajian Grafis WPF.

Anda tidak pernah langsung membuat instans DrawingContext; namun demikian, Anda dapat memperoleh konteks gambar dari metode-metode tertentu, seperti DrawingGroup.Open dan DrawingVisual.RenderOpen.

Properti

Nama Deskripsi
Dispatcher

Dispatcher Mendapatkan ini DispatcherObject dikaitkan dengan.

(Diperoleh dari DispatcherObject)

Metode

Nama Deskripsi
CheckAccess()

Menentukan apakah utas panggilan memiliki akses ke ini DispatcherObject.

(Diperoleh dari DispatcherObject)
Close()

DrawingContext Menutup dan menghapus konten. Setelah itu, DrawingContext tidak dapat dimodifikasi.

DisposeCore()

Merilis semua sumber daya yang DrawingContextdigunakan oleh .

DrawDrawing(Drawing)

Menggambar objek yang ditentukan Drawing .

DrawEllipse(Brush, Pen, Point, AnimationClock, Double, AnimationClock, Double, AnimationClock)

Menggambar elips dengan jam animasi yang ditentukan Brush dan Pen dan menerapkan jam animasi yang ditentukan.

DrawEllipse(Brush, Pen, Point, Double, Double)

Menggambar elips dengan yang ditentukan Brush dan Pen.

DrawGeometry(Brush, Pen, Geometry)

Menggambar yang ditentukan Geometry menggunakan yang ditentukan Brush dan Pen.

DrawGlyphRun(Brush, GlyphRun)

Menggambar teks yang ditentukan.

DrawImage(ImageSource, Rect, AnimationClock)

Menggambar gambar ke wilayah yang ditentukan oleh jam animasi yang ditentukan Rect dan menerapkan jam animasi yang ditentukan.

DrawImage(ImageSource, Rect)

Menggambar gambar ke wilayah yang ditentukan oleh Rect.

DrawLine(Pen, Point, AnimationClock, Point, AnimationClock)

Menggambar garis di antara titik yang ditentukan menggunakan jam animasi yang ditentukan Pen dan menerapkan jam animasi yang ditentukan.

DrawLine(Pen, Point, Point)

Menggambar garis di antara titik yang ditentukan menggunakan Pen.

DrawRectangle(Brush, Pen, Rect, AnimationClock)

Menggambar persegi panjang dengan jam animasi yang ditentukan Brush dan Pen dan menerapkan jam animasi yang ditentukan.

DrawRectangle(Brush, Pen, Rect)

Menggambar persegi panjang dengan yang ditentukan Brush dan Pen. Pena dan kuasnya bisa .null

DrawRoundedRectangle(Brush, Pen, Rect, AnimationClock, Double, AnimationClock, Double, AnimationClock)

Menggambar persegi panjang bulat dengan yang ditentukan Brush dan Pen dan menerapkan jam animasi yang ditentukan.

DrawRoundedRectangle(Brush, Pen, Rect, Double, Double)

Menggambar persegi panjang bulat dengan yang ditentukan Brush dan Pen.

DrawText(FormattedText, Point)

Gambar teks yang diformat pada lokasi yang ditentukan.

DrawVideo(MediaPlayer, Rect, AnimationClock)

Menggambar video ke wilayah yang ditentukan dan menerapkan jam animasi yang ditentukan.

DrawVideo(MediaPlayer, Rect)

Menggambar video ke wilayah yang ditentukan.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
Pop()

Memunculkan operasi masker opasitas, opasitas, klip, efek, atau transformasi terakhir yang didorong ke konteks gambar.

PushClip(Geometry)

Mendorong wilayah klip yang ditentukan ke konteks gambar.

PushEffect(BitmapEffect, BitmapEffectInput)
Kedaluwarsa.

Mendorong yang ditentukan BitmapEffect ke konteks gambar.

PushGuidelineSet(GuidelineSet)

Mendorong yang ditentukan GuidelineSet ke konteks gambar.

PushOpacity(Double, AnimationClock)

Mendorong pengaturan opasitas yang ditentukan ke konteks gambar dan menerapkan jam animasi yang ditentukan.

PushOpacity(Double)

Mendorong pengaturan opasitas yang ditentukan ke konteks gambar.

PushOpacityMask(Brush)

Mendorong masker opasitas yang ditentukan ke konteks gambar.

PushTransform(Transform)

Mendorong yang ditentukan Transform ke konteks gambar.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
VerifyAccess()

Memberlakukan bahwa utas panggilan memiliki akses ke ini DispatcherObject.

(Diperoleh dari DispatcherObject)
VerifyApiNonstructuralChange()

Anggota ini mendukung infrastruktur WPF dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Implementasi Antarmuka Eksplisit

Nama Deskripsi
IDisposable.Dispose()

Anggota ini mendukung infrastruktur Windows Presentation Foundation (WPF) dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Berlaku untuk

Lihat juga