次の方法で共有


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 から DrawingContext を取得し、それを四角形の描画に使用しています。

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

次の例では、、PushEffect、、およびPopコマンドをPushOpacity示します。 から DrawingContext 取得 DrawingGroup され、コントロールを Image 使用して表示される。

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 DrawingContext を使用して、ビジュアル コンテンツを設定 Visual します Drawing

DrawingContext描画メソッドは型のSystem.Drawing.Graphics描画メソッドに似ていますが、非常にDrawingContext異なる方法で機能します。これは保持モードのグラフィックス システムで使用されSystem.Drawing.Graphics、タイプはイミディエイト モードのグラフィックス システムで使用されます。 DrawingContext オブジェクトの描画コマンドを使用すると、実際には、レンダリング命令のセットが保存され (ただし、厳密な格納メカニズムは DrawingContext を提供するオブジェクトの型に依存します)、後でグラフィックス システムによって使用されます。画面にリアルタイムで描画されることはありません。 Windows Presentation Foundation (WPF) グラフィックス システムのしくみの詳細については、「WPF グラフィックス レンダリングの概要」を参照してください。

DrawingContext を直接インスタンス化することはできません。ただし、描画コンテキストは、特定のメソッド (DrawingGroup.OpenDrawingVisual.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)

指定した Brush および Pen を使用して楕円を描画します。

DrawGeometry(Brush, Pen, Geometry)

指定された BrushPen を使用して、指定された Geometry を描画します。

DrawGlyphRun(Brush, GlyphRun)

指定したテキストを描画します。

DrawImage(ImageSource, Rect)

指定した Rect で定義されている領域にイメージを描画します。

DrawImage(ImageSource, Rect, AnimationClock)

指定した Rect で定義されている領域にイメージを描画し、指定したアニメーション クロックを適用します。

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

指定した Pen を使用して、特定のポイント間に線を描画し、特定のアニメーション クロックを適用します。

DrawLine(Pen, Point, Point)

指定した Pen を使用して指定したポイントの間の線を描画します。

DrawRectangle(Brush, Pen, Rect)

指定した Brush および Pen を使用して四角形を描画します。 ペンとブラシに null を指定できます。

DrawRectangle(Brush, Pen, Rect, AnimationClock)

指定した Brush および Pen を使用して四角形を描画し、特定のアニメーション クロックを適用します。

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

指定した Brush および Pen を使用して丸みのある四角形を描画し、特定のアニメーション クロックを適用します。

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

指定した Brush および Pen を使用して丸みのある四角形を描画します。

DrawText(FormattedText, Point)

書式設定されたテキストを指定した位置に描画します。

DrawVideo(MediaPlayer, Rect)

指定した領域にビデオを描画します。

DrawVideo(MediaPlayer, Rect, AnimationClock)

指定した領域にビデオを描画し、指定したアニメーション クロックを適用します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
Pop()

描画コンテキストにプッシュされた最後の不透明マスク、不透明度、クリップ、効果、または変換操作をポップします。

PushClip(Geometry)

指定したクリップ領域を描画コンテキストにプッシュします。

PushEffect(BitmapEffect, BitmapEffectInput)
互換性のために残されています。

指定した BitmapEffect を描画コンテキストにプッシュします。

PushGuidelineSet(GuidelineSet)

指定した GuidelineSet を描画コンテキストにプッシュします。

PushOpacity(Double)

指定した透過度設定を描画コンテキストにプッシュします。

PushOpacity(Double, AnimationClock)

指定した透過度設定を描画コンテキストにプッシュし、指定したアニメーション クロックを適用します。

PushOpacityMask(Brush)

指定した不透明マスクを描画コンテキストにプッシュします。

PushTransform(Transform)

指定した Transform を描画コンテキストにプッシュします。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
VerifyAccess()

呼び出し元のスレッドがこの DispatcherObject にアクセスできるように強制します。

(継承元 DispatcherObject)
VerifyApiNonstructuralChange()

このメンバーは WPF インフラストラクチャをサポートしており、コードから直接使用することを意図していません。

明示的なインターフェイスの実装

IDisposable.Dispose()

このメンバーは、Windows Presentation Foundation (WPF) インフラストラクチャをサポートしており、コードから直接使用することを意図していません。

適用対象

こちらもご覧ください