DrawingVisual.Drawing Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает содержимое рисунка объекта 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
Значение свойства
Получает значение типа DrawingGroup, представляющее коллекцию объектов Drawing в объекте DrawingVisual.
Примеры
В следующем примере DrawingGroup перечисляется значение каждого DrawingVisual элемента в визуальном элементе узла.
// 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
Комментарии
Визуальный объект хранит свои данные отрисовки в виде списка инструкций векторной графики. Каждый элемент в списке инструкций представляет низкоуровневый набор графических данных в сериализованном формате. Дополнительные сведения о том, как визуальные объекты хранят графические данные, см. в разделе Общие сведения о отрисовке графики WPF.
Любое изменение возвращаемого DrawingGroup значения не сохраняется DrawingVisual.