I have a drawing visual which I have drawings, how do I add this to my canvas and display?
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();
How do I add this to a canvas? Suppose I have a Canvas as
Canvas canvas = null;
canvas.Children.Add(drawingVisual); //Doesnt work as UIElement expected.
How do I add my drawingVisual to canvas?
TIA.
I have a drawing visual which I have drawings, how do I add this to my canvas and display? 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.
Here are seven ways to display your canvases in a stylish and secure manner. 1. Hidden Hooks The thickness of a canvas’ edges makes it tricky to frame.
DrawingVisual Object The DrawingVisualis a lightweight drawing class that is used to render shapes, images, or text. This class is considered lightweight because it does not provide layout or event handling, which improves its performance. For this reason, drawings are ideal for backgrounds and clip art.
The whole process of displaying/drawing an image on canvas can thus be summarised in just two steps: Selection and Drawing. Awesome! Not so complicated after all is it?
You have to implement a host element class, which would have to override the VisualChildrenCount
property and the GetVisualChild()
method of a derived UIElement or FrameworkElement to return your DrawingVisual.
The most basic implementation could look like this:
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;
}
}
Now you would add a Visual to your Canvas like this:
canvas.Children.Add(new VisualHost { Visual = drawingVisual });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With