Поделиться через


Практическое руководство. Перечисление содержимого изображения визуального элемента

Обновлен: Ноябрь 2007

Объект Drawing предоставляет модель объекта для перечисления содержимого Visual.

Пример

В следующем примере метод GetDrawing используется для извлечения значения DrawingGroup объекта Visual и его перечисления.

Aa969822.alert_note(ru-ru,VS.90).gifПримечание.

При перечислении содержимого объекта visual, извлекаются объекты Drawing, но не базовое представление отображаемых данных, как, например, список инструкций вектора графики. Дополнительные сведения см. в разделе Обзор графической визуализации 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.
         }
     }
 }

См. также

Основные понятия

Обзор объектов Drawing

Обзор графической визуализации Windows Presentation Foundation

Ссылки

Drawing

DrawingGroup

VisualTreeHelper