Compartilhar via


Como: Enumerate Drawing Content of a Visual

O objeto Drawing fornece um modelo de objeto para enumerar o conteúdo de um Visual.

Exemplo

O exemplo a seguir utiliza o método GetDrawing para recuperar o valor DrawingGroup de um Visual e enumerá-lo.

ObservaçãoObservação:

Quando são enumerar o Sumário do visual, você está recuperando Drawing objetos e não a subjacente representação dos dados de processamento sistema autônomo uma lista de instrução de elementos gráficos vetoriais. Para obter mais informações, consulte Visão Geral sobre Renderização de Gráficos do Windows Presentation Foundation.

public void RetrieveDrawing(Visual v)
{
    DrawingGroup dGroup = VisualTreeHelper.GetDrawing(v);
    EnumDrawingGroup(dGroup);

}

 // Enumerate the drawings in the DrawingGroup.
 public void EnumDrawingGroup(DrawingGroup drawingGroup)
 {
     DrawingCollection dc = drawingGroup.Children;

     // Enumerate the drawings in the DrawingCollection.
     foreach (Drawing drawing in dc)
     {
         // If the drawing is a DrawingGroup, call the function recursively.
         if (drawing.GetType() == typeof(DrawingGroup))
         {
             EnumDrawingGroup((DrawingGroup)drawing);
         }
         else if (drawing.GetType() == typeof(GeometryDrawing))
         {
             // Perform action based on drawing type.  
         }
         else if (drawing.GetType() == typeof(ImageDrawing))
         {
             // Perform action based on drawing type.
         }
         else if (drawing.GetType() == typeof(GlyphRunDrawing))
         {
             // Perform action based on drawing type.
         }
         else if (drawing.GetType() == typeof(VideoDrawing))
         {
             // Perform action based on drawing type.
         }
     }
 }

Consulte também

Conceitos

Visão Geral de Objetos de Desenho

Visão Geral sobre Renderização de Gráficos do Windows Presentation Foundation

Referência

Drawing

DrawingGroup

VisualTreeHelper