Mega Code Archive

 
Categories / C# Tutorial / WPF
 

Hosting DrawingVisuals

using System; using System.Windows; using System.Windows.Media;     public class WindowHostingVisual : Window     {         DrawingVisual ghostVisual = new DrawingVisual();         public WindowHostingVisual()         {             using (DrawingContext dc = ghostVisual.RenderOpen())             {                 dc.DrawGeometry(Brushes.Blue, null, Geometry.Parse(                 @"M 240,250                   C 100,400 100,250 100,200                   C 0,350 0,250 30,130                   C 200,0 250,0 250,150 Z"));                 Pen p = new Pen(Brushes.Black, 10);                 p.StartLineCap = PenLineCap.Round;                 p.EndLineCap = PenLineCap.Round;                 dc.DrawLine(p, new Point(75, 160), new Point(175, 150));             }             AddVisualChild(ghostVisual);             AddLogicalChild(ghostVisual);         }         protected override int VisualChildrenCount         {             get { return 1; }         }         protected override Visual GetVisualChild(int index)         {             if (index != 0)                 throw new ArgumentOutOfRangeException("index");             return ghostVisual;         }         [STAThread]         public static void Main()         {             WindowHostingVisual whv = new WindowHostingVisual();             whv.ShowDialog();         }     }