新規作成日 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.
// 図面の種類に基づいて動作を実行します。
}
}
}
こちらもご覧ください
See also