DrawingContext Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Çizim, gönderme ve pop komutlarını kullanarak görsel içeriği açıklar.
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
- Uygulamalar
Örnekler
Aşağıdaki örnek, 'den bir DrawingContextDrawingVisual alır ve dikdörtgen çizmek için bunu kullanır.
// 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 , PushEffectve Pop komutları gösterilmektedirPushOpacity. DrawingContext bir'den DrawingGroup alınır ve bir Image denetim kullanılarak görüntülenir.
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 veya görsel içerikle doldurmak Visual için a Drawing kullanın.
Çizim yöntemleri, türün DrawingContext çizim yöntemlerine System.Drawing.Graphics benzer görünse de, çok farklı çalışırlar: DrawingContext korumalı mod grafik sistemiyle kullanılırken System.Drawing.Graphics , tür anında mod grafik sistemiyle kullanılır. Bir DrawingContext nesnenin çizim komutlarını kullandığınızda, aslında bir dizi işleme yönergesi depolarsınız (tam depolama mekanizması, daha sonra grafik sistemi tarafından kullanılacak nesnenin DrawingContexttürüne bağlı olsa da), ekrana gerçek zamanlı olarak çizim yapılmaz. Windows Presentation Foundation (WPF) grafik sisteminin nasıl çalıştığı hakkında daha fazla bilgi için bkz. WPF Grafik İşlemeye Genel Bakış.
Hiçbir zaman doğrudan bir DrawingContextörneği oluşturmazsınız; ancak ve DrawingVisual.RenderOpengibi DrawingGroup.Open belirli yöntemlerden bir çizim bağlamı elde edebilirsiniz.
Özellikler
Dispatcher |
Dispatcher Bunun DispatcherObject ilişkili olduğu öğesini alır. (Devralındığı yer: DispatcherObject) |
Yöntemler
CheckAccess() |
Çağıran iş parçacığının bu DispatcherObjectöğesine erişimi olup olmadığını belirler. (Devralındığı yer: DispatcherObject) |
Close() |
DrawingContext öğesini kapatır ve içeriği temizler. Daha sonra, DrawingContext değiştirilemez. |
DisposeCore() |
DrawingContext tarafından kullanılan tüm kaynakları serbest bırakır. |
DrawDrawing(Drawing) |
Belirtilen Drawing nesneyi çizer. |
DrawEllipse(Brush, Pen, Point, AnimationClock, Double, AnimationClock, Double, AnimationClock) |
Belirtilen Brush ile bir üç nokta çizer ve Pen belirtilen animasyon saatlerini uygular. |
DrawEllipse(Brush, Pen, Point, Double, Double) | |
DrawGeometry(Brush, Pen, Geometry) |
Belirtilen Geometry ve Penkullanarak belirtilen Brush öğesini çizer. |
DrawGlyphRun(Brush, GlyphRun) |
Belirtilen metni çizer. |
DrawImage(ImageSource, Rect) |
Belirtilen Recttarafından tanımlanan bölgeye bir görüntü çizer. |
DrawImage(ImageSource, Rect, AnimationClock) |
Belirtilen Rect tarafından tanımlanan bölgeye bir görüntü çizer ve belirtilen animasyon saatini uygular. |
DrawLine(Pen, Point, AnimationClock, Point, AnimationClock) |
Belirtilen noktaların arasına belirtilen Pen öğesini kullanarak bir çizgi çizer ve belirtilen animasyon saatlerini uygular. |
DrawLine(Pen, Point, Point) |
Belirtilen kullanarak belirtilen noktalar Penarasında bir çizgi çizer. |
DrawRectangle(Brush, Pen, Rect) |
Belirtilen Brush ve Penile bir dikdörtgen çizer. Kalem ve fırça olabilir |
DrawRectangle(Brush, Pen, Rect, AnimationClock) |
Belirtilen Brush ile bir dikdörtgen çizer ve Pen belirtilen animasyon saatlerini uygular. |
DrawRoundedRectangle(Brush, Pen, Rect, AnimationClock, Double, AnimationClock, Double, AnimationClock) |
Belirtilen Brush ile yuvarlatılmış bir dikdörtgen çizer ve Pen belirtilen animasyon saatlerini uygular. |
DrawRoundedRectangle(Brush, Pen, Rect, Double, Double) |
Belirtilen Brush ve Penile yuvarlatılmış bir dikdörtgen çizer. |
DrawText(FormattedText, Point) |
Belirtilen konumda biçimlendirilmiş metin çizer. |
DrawVideo(MediaPlayer, Rect) |
Belirtilen bölgeye bir video çizer. |
DrawVideo(MediaPlayer, Rect, AnimationClock) |
Belirtilen bölgeye bir video çizer ve belirtilen animasyon saatini uygular. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
Pop() |
Çizim bağlamı üzerine gönderilen son opaklık maskesini, opaklığı, klibi, efekti veya dönüştürme işlemini açar. |
PushClip(Geometry) |
Belirtilen küçük resim bölgesini çizim bağlamına iter. |
PushEffect(BitmapEffect, BitmapEffectInput) |
Geçersiz.
Belirtilen BitmapEffect öğesini çizim bağlamına iter. |
PushGuidelineSet(GuidelineSet) |
Belirtilen GuidelineSet öğesini çizim bağlamına iter. |
PushOpacity(Double) |
Belirtilen opaklık ayarını çizim bağlamına iter. |
PushOpacity(Double, AnimationClock) |
Belirtilen opaklık ayarını çizim bağlamına iter ve belirtilen animasyon saatini uygular. |
PushOpacityMask(Brush) |
Belirtilen opaklık maskesini çizim bağlamına iter. |
PushTransform(Transform) |
Belirtilen Transform öğesini çizim bağlamına iter. |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
VerifyAccess() |
Çağıran iş parçacığının bu DispatcherObjectöğesine erişmesini zorlar. (Devralındığı yer: DispatcherObject) |
VerifyApiNonstructuralChange() |
Bu üye WPF altyapısını destekler ve doğrudan kodunuzdan kullanılması amaçlanmamıştır. |
Belirtik Arabirim Kullanımları
IDisposable.Dispose() |
Bu üye Windows Presentation Foundation (WPF) altyapısını destekler ve doğrudan kodunuzdan kullanılması amaçlanmamıştır. |