protected override void OnInitialized(EventArgs e) { base.OnInitialized(e); var grid = new Grid(); AddChild(grid); grid.ClipToBounds = true; m_map = new MapControl(); m_map.SomethingChanged += new Action(m_map_SomethingChanged); m_map.AStarDone += new Action<AStarResult>(m_map_AStarDone); grid.Children.Add((UIElement)m_map); m_canvas = new Canvas(); m_canvas.UseLayoutRounding = false; m_canvas.SnapsToDevicePixels = true; m_canvas.ClipToBounds = true; grid.Children.Add(m_canvas); m_scaleTransform = new ScaleTransform(); m_translateTransform = new TranslateTransform(); var canvasTransform = new TransformGroup(); canvasTransform.Children.Add(m_scaleTransform); canvasTransform.Children.Add(m_translateTransform); m_canvas.RenderTransform = canvasTransform; m_path1 = new Polyline(); m_path1.Stroke = System.Windows.Media.Brushes.SlateGray; m_path1.StrokeThickness = 0.1; m_path1.FillRule = FillRule.EvenOdd; m_path1.IsHitTestVisible = false; m_canvas.Children.Add(m_path1); Canvas.SetLeft(m_path1, 0.5); Canvas.SetTop(m_path1, 0.5); }