2013-07-20 4 views
4

В настоящее время я пытаюсь добавить BezierSegment в мой холст для своего WPF. Я получаю время компиляции ошибка неправильного броска:Добавление (BezierSegment to a) Путь к холсту

Аргумент 1: не удается преобразовать из «System.Windows.Media.PathGeometry» до «System.Windows.UIElement»

Это что у меня есть до сих пор ...

//bezier curve it 
BezierSegment curve = new BezierSegment(startPoint, endPoint,controlPoint,false); 

// Set up the Path to insert the segments 
PathGeometry path = new PathGeometry(); 

PathFigure pathFigure = new PathFigure(); 
pathFigure.StartPoint = hs.LeStartingPoint; 
pathFigure.IsClosed = true; 
path.Figures.Add(pathFigure); 

pathFigure.Segments.Add(curve); 
System.Windows.Shapes.Path p = new Path(); 
p.Data = path; 
this.mainWindow.MyCanvas.Children.Add(path); 

Любая помощь была бы принята с благодарностью!

ответ

5

Вы должны добавить p (Path) в Canvas, не path (PathGeometry).

BezierSegment curve = new BezierSegment(new Point(11,11), new Point(22,22), new Point(15,15), false);   

// Set up the Path to insert the segments 
PathGeometry path = new PathGeometry(); 

PathFigure pathFigure = new PathFigure(); 
pathFigure.StartPoint = new Point(11, 11); 
pathFigure.IsClosed = true; 
path.Figures.Add(pathFigure); 

pathFigure.Segments.Add(curve); 
System.Windows.Shapes.Path p = new Path(); 
p.Stroke = Brushes.Red; 
p.Data = path; 

MyCanvas.Children.Add(p); // Here 
+1

+1, бил меня, и красиво выложил = D – Chris

+1

@Chris: И плюс вы за попытку :). –

+0

D'oh, спасибо вам обоим, ребята! – Ace

2

Я не рядом с машиной, которая может проверить это прямо сейчас, но я думаю, что вы почти там. Вам нужно добавить System.Windows.Shapes.Path объект, который вы создали (вы не используете его), наряду с некоторыми параметрами, чтобы сделать линию на самом деле делают:

System.Windows.Shapes.Path p = new Path(); 
p.Data = path; 
p.Fill = System.Windows.Media.Brushes.Green; 
p.Stroke = System.Windows.Media.Brushes.Blue; 
p.StrokeThickness = 1; 

this.MyCanvas.Children.Add(p); 
Смежные вопросы