Freigeben über


Gewusst wie: Auflisten des Zeichnungsinhalts eines visuellen Objekts

Das Drawing Objekt stellt ein Objektmodell bereit, um den Inhalt eines Objekts Visualaufzuzählen.

Beispiel

Im folgenden Beispiel wird die GetDrawing Methode verwendet, um den DrawingGroup Wert einer Visual Methode abzurufen und sie aufzählen zu können.

Hinweis

Wenn Sie den Inhalt des visuellen Objekts auflisten, rufen Sie Drawing-Objekte und nicht die zugrunde liegende Darstellung der Renderingdaten als Anweisungsliste für Vektorgrafiken ab. Weitere Informationen finden Sie unter Übersicht über das WPF-Grafikenrendering.

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

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

Weitere Informationen