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();
}
}