Condividi tramite


Procedura: enumerare il contenuto del disegno di un oggetto Visual

Aggiornamento: novembre 2007

L'oggetto Drawing fornisce un modello a oggetti per l'enumerazione del contenuto di Visual.

Esempio

Nell'esempio riportato di seguito viene utilizzato il metodo GetDrawing per recuperare il valore DrawingGroup di Visual e per enumerarlo.

Nota

Quando viene enumerato il contenuto dell'oggetto visivo, vengono recuperati oggetti Drawing e non la rappresentazione sottostante dei dati di rendering come elenco di istruzioni della grafica vettoriale. Per ulteriori informazioni, vedere Cenni preliminari sul rendering della grafica in 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.
         }
     }
 }

Vedere anche

Concetti

Cenni preliminari sugli oggetti Drawing

Cenni preliminari sul rendering della grafica in Windows Presentation Foundation

Riferimenti

Drawing

DrawingGroup

VisualTreeHelper