DrawingContext Sınıf

Tanım

Çizim, gönderim ve Pop komutları kullanılarak görsel içeriği açıklar.Describes visual content using draw, push, and pop commands.

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
Devralma
DrawingContext
Uygulamalar

Örnekler

Aşağıdaki örnek bir öğesinden bir alır DrawingContext DrawingVisual ve bir dikdörtgen çizmek için onu kullanır.The following example retrieves a DrawingContext from a DrawingVisual and uses it to draw a rectangle.

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

Sonraki örnekte PushOpacity ,, PushEffect ve komutları gösterilmektedir Pop .The next example demonstrates the PushOpacity, PushEffect, and Pop commands. , DrawingContext ' Dan alınır DrawingGroup ve bir denetim kullanılarak görüntülenir Image .The DrawingContext is obtained from a DrawingGroup and displayed using an Image control.

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Navigation;
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));

                // Blurs subsquent drawings. 
                dc.PushEffect(new BlurBitmapEffect(), null);

                // This rectangle is blurred and drawn at 50% opacity (0.5 x 0.5). 
                dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, new Rect(50, 50, 25, 25));

                // This rectangle is also blurred and drawn at 50% opacity.
                dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, new Rect(75, 75, 25, 25));

                // Stop applying the blur to subsquent drawings.
                dc.Pop();

                // This rectangle is drawn at 50% opacity with no blur effect.
                dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, new Rect(100, 100, 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))

                ' Blurs subsquent drawings. 
                dc.PushEffect(New BlurBitmapEffect(), Nothing)

                ' This rectangle is blurred and drawn at 50% opacity (0.5 x 0.5). 
                dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, New Rect(50, 50, 25, 25))

                ' This rectangle is also blurred and drawn at 50% opacity.
                dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, New Rect(75, 75, 25, 25))

                ' Stop applying the blur to subsquent drawings.
                dc.Pop()

                ' This rectangle is drawn at 50% opacity with no blur effect.
                dc.DrawRectangle(Brushes.Blue, shapeOutlinePen, New Rect(100, 100, 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

Açıklamalar

Bir DrawingContext Visual veya öğesini görsel içerikle doldurmak için bir kullanın Drawing .Use a DrawingContext to populate a Visual or a Drawing with visual content.

DrawingContextÇizim yöntemleri türdeki Çizim yöntemlerine benzer görünse de System.Drawing.Graphics , çok farklı çalışır: DrawingContext tür bir System.Drawing.Graphics anlık mod grafik sistemiyle kullanıldığında, bir tutulan mod grafik sistemiyle kullanılır.Although the DrawingContext draw methods appear similar to the draw methods of the System.Drawing.Graphics type, they function very differently: DrawingContext is used with a retained mode graphics system, while the System.Drawing.Graphics type is used with an immediate mode graphics system. Bir DrawingContext nesnenin çizim komutlarını kullandığınızda, aslında bir dizi işleme yönergesi depoluyorsanız (tam depolama mekanizması, DrawingContext daha sonra grafik sistemi tarafından kullanılacak olan nesne türüne bağlıdır) ve ekrana gerçek zamanlı olarak çizmeyin.When you use a DrawingContext object's draw commands, you are actually storing a set of rendering instructions (although the exact storage mechanism depends on the type of object that supplies the DrawingContext) that will later be used by the graphics system; you are not drawing to the screen in real-time. Windows Presentation Foundation (WPF) grafik sisteminin nasıl çalıştığı hakkında daha fazla bilgi için bkz. WPF Grafik Işlemeye genel bakış.For more information about how the Windows Presentation Foundation (WPF) graphics system works, see WPF Graphics Rendering Overview.

Hiçbir şekilde doğrudan örnekleyemezsiniz DrawingContext ; ancak, ve gibi belirli yöntemlerden bir çizim bağlamı elde edebilirsiniz DrawingGroup.Open DrawingVisual.RenderOpen .You never directly instantiate a DrawingContext; you can, however, acquire a drawing context from certain methods, such as DrawingGroup.Open and DrawingVisual.RenderOpen.

Özellikler

Dispatcher

Dispatcher DispatcherObject İle ilişkili olduğunu alır.Gets the Dispatcher this DispatcherObject is associated with.

(Devralındığı yer: DispatcherObject)

Yöntemler

CheckAccess()

Çağıran iş parçacığının bu öğesine erişip erişemeyeceğini belirler DispatcherObject .Determines whether the calling thread has access to this DispatcherObject.

(Devralındığı yer: DispatcherObject)
Close()

Öğesini kapatır DrawingContext ve içeriği temizler.Closes the DrawingContext and flushes the content. Daha sonra DrawingContext değiştirilemez.Afterward, the DrawingContext cannot be modified.

DisposeCore()

DrawingContext tarafından kullanılan tüm kaynakları serbest bırakır.Releases all resources used by the DrawingContext.

DrawDrawing(Drawing)

Belirtilen nesneyi çizer Drawing .Draws the specified Drawing object.

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

Belirtilen ve içeren bir elips çizer Brush Pen ve belirtilen animasyon saatlerini uygular.Draws an ellipse with the specified Brush and Pen and applies the specified animation clocks.

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

Belirtilen ve içeren bir elips çizer Brush Pen .Draws an ellipse with the specified Brush and Pen.

DrawGeometry(Brush, Pen, Geometry)

Belirtilen Geometry ve kullanarak belirtilen Brush ' i çizer Pen .Draws the specified Geometry using the specified Brush and Pen.

DrawGlyphRun(Brush, GlyphRun)

Belirtilen metni çizer.Draws the specified text.

DrawImage(ImageSource, Rect)

Belirtilen bölge tarafından tanımlanan bölgeye bir resim çizer Rect .Draws an image into the region defined by the specified Rect.

DrawImage(ImageSource, Rect, AnimationClock)

Belirtilen tarafından tanımlanan bölgeye bir resim çizer Rect ve belirtilen animasyon saatini uygular.Draws an image into the region defined by the specified Rect and applies the specified animation clock.

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

Belirtilen noktaların arasına belirtilen noktaları kullanarak bir çizgi çizer Pen ve belirtilen animasyon saatlerini uygular.Draws a line between the specified points using the specified Pen and applies the specified animation clocks.

DrawLine(Pen, Point, Point)

Belirtilen noktaların arasına belirtilen noktaları kullanarak bir çizgi çizer Pen .Draws a line between the specified points using the specified Pen.

DrawRectangle(Brush, Pen, Rect)

Belirtilen ve içeren bir dikdörtgen çizer Brush Pen .Draws a rectangle with the specified Brush and Pen. Kalem ve fırça olabilir null .The pen and the brush can be null.

DrawRectangle(Brush, Pen, Rect, AnimationClock)

Belirtilen ve içeren bir dikdörtgen çizer Brush Pen ve belirtilen animasyon saatlerini uygular.Draws a rectangle with the specified Brush and Pen and applies the specified animation clocks.

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

Belirtilen Brush ve belirtilen animasyon saatlerini uygulayan bir yuvarlatılmış dikdörtgen çizer Pen .Draws a rounded rectangle with the specified Brush and Pen and applies the specified animation clocks.

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

Belirtilen ve içeren bir yuvarlatılmış dikdörtgen çizer Brush Pen .Draws a rounded rectangle with the specified Brush and Pen.

DrawText(FormattedText, Point)

Belirtilen konumda biçimli metin çizer.Draws formatted text at the specified location.

DrawVideo(MediaPlayer, Rect)

Belirtilen bölgeye bir video çizer.Draws a video into the specified region.

DrawVideo(MediaPlayer, Rect, AnimationClock)

Belirtilen bölgeye bir video çizer ve belirtilen animasyon saatini uygular.Draws a video into the specified region and applies the specified animation clock.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.Determines whether the specified object is equal to the current object.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi olarak işlev görür.Serves as the default hash function.

(Devralındığı yer: Object)
GetType()

TypeGeçerli örneği alır.Gets the Type of the current instance.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli bir basit kopyasını oluşturur Object .Creates a shallow copy of the current Object.

(Devralındığı yer: Object)
Pop()

Çizim bağlamına gönderilen son opaklık maskesi, opaklık, klip, efekt veya dönüşüm işlemini pop 'ları.Pops the last opacity mask, opacity, clip, effect, or transform operation that was pushed onto the drawing context.

PushClip(Geometry)

Belirtilen kırpma bölgesini çizim bağlamına iter.Pushes the specified clip region onto the drawing context.

PushEffect(BitmapEffect, BitmapEffectInput)
Kullanımdan kalktı.

Çizim bağlamına belirtilen şekilde iter BitmapEffect .Pushes the specified BitmapEffect onto the drawing context.

PushGuidelineSet(GuidelineSet)

Çizim bağlamına belirtilen şekilde iter GuidelineSet .Pushes the specified GuidelineSet onto the drawing context.

PushOpacity(Double)

Belirtilen opaklık ayarını çizim bağlamına iter.Pushes the specified opacity setting onto the drawing context.

PushOpacity(Double, AnimationClock)

Belirtilen opaklık ayarını çizim bağlamına iter ve belirtilen animasyon saatini uygular.Pushes the specified opacity setting onto the drawing context and applies the specified animation clock.

PushOpacityMask(Brush)

Belirtilen opaklık maskesini çizim bağlamına iter.Pushes the specified opacity mask onto the drawing context.

PushTransform(Transform)

Çizim bağlamına belirtilen şekilde iter Transform .Pushes the specified Transform onto the drawing context.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.Returns a string that represents the current object.

(Devralındığı yer: Object)
VerifyAccess()

Çağıran iş parçacığının buna erişimi olmasını zorlar DispatcherObject .Enforces that the calling thread has access to this DispatcherObject.

(Devralındığı yer: DispatcherObject)
VerifyApiNonstructuralChange()

Bu üye WPF altyapısını destekler ve doğrudan kodunuzdan kullanılmaya yönelik değildir.This member supports the WPF infrastructure and is not intended to be used directly from your code.

Belirtik Arabirim Kullanımları

IDisposable.Dispose()

Bu üye Windows Presentation Foundation (WPF) altyapısını destekler ve doğrudan kodunuzdan kullanılmaya yönelik değildir.This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

Şunlara uygulanır

Ayrıca bkz.