2016-03-21 5 views
2

У меня есть визуальный рисунок, который у меня есть рисунки, как его добавить на мой холст и дисплей?Показать чертежVisual на холсте

DrawingVisual drawingVisual = new DrawingVisual(); 

// Retrieve the DrawingContext in order to create new drawing content. 
DrawingContext drawingContext = drawingVisual.RenderOpen(); 

// Create a rectangle and draw it in the DrawingContext. 
Rect rect = new Rect(new System.Windows.Point(0, 0), new System.Windows.Size(100, 100)); 
drawingContext.DrawRectangle(System.Windows.Media.Brushes.Aqua, (System.Windows.Media.Pen)null, rect); 

// Persist the drawing content. 
drawingContext.Close(); 

Как добавить это на холст? Предположим, у меня есть холст как

Canvas canvas = null; 
    canvas.Children.Add(drawingVisual); //Doesnt work as UIElement expected. 

Как добавить чертежВизуал на холст?

TIA.

ответ

3

Вы должны реализовать класс элемента-хозяина, который должен был бы переопределить свойство VisualChildrenCount и метод GetVisualChild() производного UIElement или FrameworkElement для возврата вашего DrawingVisual.

Наиболее базовая реализация может выглядеть следующим образом:

public class VisualHost : UIElement 
{ 
    public Visual Visual { get; set; } 

    protected override int VisualChildrenCount 
    { 
     get { return Visual != null ? 1 : 0; } 
    } 

    protected override Visual GetVisualChild(int index) 
    { 
     return Visual; 
    } 
} 

Теперь вы бы добавить видео на ваш холст, как это:

canvas.Children.Add(new VisualHost { Visual = drawingVisual }); 

 Смежные вопросы

  • Нет связанных вопросов^_^