DrawingVisual and DrawingContext : DrawingContext « Windows Presentation Foundation « C# / CSharp Tutorial






using System;
using System.Windows;
using System.Windows.Media;

namespace WindowHostingVisual
{
    public class WindowHostingVisual : Window
    {
        [STAThread]
        public static void Main()
        {
            WindowHostingVisual whv = new WindowHostingVisual();
            whv.ShowDialog();
        }

        public WindowHostingVisual()
        {
            DrawingVisual ghostVisual = new DrawingVisual();
            using (DrawingContext dc = ghostVisual.RenderOpen())
            {
                dc.DrawGeometry(Brushes.Blue, null, Geometry.Parse(
                @"M 240,250
                  C 200,375 200,250 175,200
                  C 200,0 250,0 250,150 Z"));
                dc.DrawEllipse(Brushes.Black, new Pen(Brushes.White, 10),
                    new Point(170, 105), 15, 15);

                Pen p = new Pen(Brushes.Black, 10);
                p.StartLineCap = PenLineCap.Round;
                p.EndLineCap = PenLineCap.Round;
                dc.DrawLine(p, new Point(5, 160), new Point(75, 150));
            }
        }
    }
}








24.171.DrawingContext
24.171.1.DrawingVisual and DrawingContext
24.171.2.Open DrawingContext from DrawingVisual
24.171.3.VisualTreeHelper.HitTest
24.171.4.Overlapping Visual Hit Testing
24.171.5.Hosting DrawingVisuals