Home > C# > 目的別資料 > Visualレイヤー・プログラミング > msdnドキュメント > 方法:Visualの描画Contentを列挙する

方法:Visualの描画Contentを列挙する

新規作成日 2020-10-09
最終更新日

How to: Enumerate Drawing Content of a Visual

Drawingオブジェクトは、Visualのコンテンツを列挙するためのオブジェクト・モデルを提供します。

Example

次の例では、GetDrawingメソッドを使用して、VisualのDrawingGroup値を取得し、列挙します。

注意

あなたが、ビジュアルのコンテンツを列挙しているとき、あなたは、Drawingオブジェクトを取り出します。そして、ベクトル・グラフィックスの命令リストとして、レンダリング・データの基盤となる表記ではありません。詳細については、「WPFグラフィックス・レンダリングの概要」を参照してください。

C#
public void RetrieveDrawing(Visual v)
{
    DrawingGroup drawingGroup = VisualTreeHelper.GetDrawing(v);
    EnumDrawingGroup(drawingGroup);
}

// Enumerate the drawings in the DrawingGroup.
// DrawingGroupの描画を列挙します。
public void EnumDrawingGroup(DrawingGroup drawingGroup)
{
    DrawingCollection dc = drawingGroup.Children;

    // Enumerate the drawings in the DrawingCollection.
    // DrawingCollectionの描画を列挙します。
    foreach (Drawing drawing in dc)
    {
        // If the drawing is a DrawingGroup, call the function recursively.
        // 描画が、DrawingGroupの場合、関数を再帰的に呼び出します。
        if (drawing is DrawingGroup group)
        {
            EnumDrawingGroup(group);
        }
        else if (drawing is GeometryDrawing)
        {
            // Perform action based on drawing type.
            // 図面の種類に基づいて動作を実行します。
        }
        else if (drawing is ImageDrawing)
        {
            // Perform action based on drawing type.
            // 図面の種類に基づいて動作を実行します。
        }
        else if (drawing is GlyphRunDrawing)
        {
            // Perform action based on drawing type.
            // 図面の種類に基づいて動作を実行します。
        }
        else if (drawing is VideoDrawing)
        {
            // Perform action based on drawing type.
            // 図面の種類に基づいて動作を実行します。
        }
    }
}

こちらもご覧ください

このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」