Compartilhar via


DrawingVisual.Drawing Propriedade

Definição

Obtém o conteúdo do desenho do objeto DrawingVisual.

public:
 property System::Windows::Media::DrawingGroup ^ Drawing { System::Windows::Media::DrawingGroup ^ get(); };
public System.Windows.Media.DrawingGroup Drawing { get; }
member this.Drawing : System.Windows.Media.DrawingGroup
Public ReadOnly Property Drawing As DrawingGroup

Valor da propriedade

DrawingGroup

Obtém um valor de tipo DrawingGroup que representa a coleção de Drawing objetos no DrawingVisual.

Exemplos

No exemplo a seguir, o DrawingGroup valor de cada DrawingVisual um em um visual de host é enumerado.

// Enumerate the DrawingVisual children of a host visual.
public void RetrieveDrawings(Visual visualHost)
{
    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(visualHost); i++)
    {
        // Retrieve child visual at specified index value.
        DependencyObject dependencyObject = VisualTreeHelper.GetChild(visualHost, i);

        // Determine if the child object is a DrawingVisual.
        if (dependencyObject.GetType() == typeof(DrawingVisual))
        {
            DrawingVisual drawingVisual = (DrawingVisual)dependencyObject;

            if (drawingVisual.Drawing != null)
            {
                if (drawingVisual.Drawing.GetType() == typeof(DrawingGroup))
                {
                    // Enumerate the drawings in the DrawingGroup.
                    EnumDrawingGroup(drawingVisual.Drawing);
                }
            }
        }
     }
 }

 // 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);
         }

         if (drawing.GetType() == typeof(GeometryDrawing))
         {
             // Perform action based on drawing type.
         }
     }
 }
' Enumerate the DrawingVisual children of a host visual.
Public Sub RetrieveDrawings(ByVal visualHost As Visual)
    For i As Integer = 0 To VisualTreeHelper.GetChildrenCount(visualHost) - 1
        ' Retrieve child visual at specified index value.
        Dim dependencyObject As DependencyObject = VisualTreeHelper.GetChild(visualHost, i)

        ' Determine if the child object is a DrawingVisual.
        If dependencyObject.GetType() Is GetType(DrawingVisual) Then
            Dim drawingVisual As DrawingVisual = CType(dependencyObject, DrawingVisual)

            If drawingVisual.Drawing IsNot Nothing Then
                If drawingVisual.Drawing.GetType() Is GetType(DrawingGroup) Then
                    ' Enumerate the drawings in the DrawingGroup.
                    EnumDrawingGroup(drawingVisual.Drawing)
                End If
            End If
        End If
    Next i
End Sub

 ' Enumerate the drawings in the DrawingGroup.
 Public Sub EnumDrawingGroup(ByVal drawingGroup As DrawingGroup)
     Dim dc As DrawingCollection = drawingGroup.Children

     ' Enumerate the drawings in the DrawingCollection.
     For Each drawing As Drawing In dc
         ' If the drawing is a DrawingGroup, call the function recursively.
         If drawing.GetType() Is GetType(DrawingGroup) Then
             EnumDrawingGroup(CType(drawing, DrawingGroup))
         End If

         If drawing.GetType() Is GetType(GeometryDrawing) Then
             ' Perform action based on drawing type.
         End If
     Next drawing
 End Sub

Comentários

Um objeto visual armazena seus dados de renderização como uma lista de instruções gráficas de vetor. Cada item na lista de instruções representa um conjunto de dados gráficos de baixo nível em um formato serializado. Para obter mais informações sobre como os objetos visuais armazenam dados gráficos, consulte a Visão geral da Renderização de Gráficos do WPF.

Qualquer alteração no valor retornado DrawingGroup não é mantida pelo DrawingVisual.

Aplica-se a