2009-08-26 3 views
3

Это фрагмент сценария XAML, который рисует код Безье. Мне нужен чистый код C#, который обеспечивает тот же результат, но не использует XAML.Нужна помощь в преобразовании XAML в код C#

Может ли кто-нибудь помочь преобразовать его в код C#?

Заранее благодарен!

Майк

<Path Stroke="Black" StrokeThickness="1"> 
    <Path.Data> 
    <PathGeometry> 
     <PathGeometry.Figures> 
     <PathFigureCollection> 
      <PathFigure StartPoint="10,100"> 
      <PathFigure.Segments> 
       <PathSegmentCollection> 
       <BezierSegment Point1="100,0" Point2="200,200" Point3="300,100" /> 
       </PathSegmentCollection> 
      </PathFigure.Segments> 
      </PathFigure> 
     </PathFigureCollection> 
     </PathGeometry.Figures> 
    </PathGeometry> 
    </Path.Data> 
</Path> 

ответ

4

Я тестировал этот код и он работает.

 Path path = new Path(); 
     path.Stroke = new SolidColorBrush(Colors.Black); 
     path.StrokeThickness = 10; 
     PathGeometry pg = new PathGeometry(); 
     PathFigureCollection pfc = new PathFigureCollection(); 
     PathFigure fig = new PathFigure(); 
     PathSegmentCollection psc = new PathSegmentCollection(); 
     BezierSegment bs1 = new BezierSegment(new Point(100, 0), new Point(200, 200), new Point(300, 100), true); 
     psc.Add(bs1); 
     fig.Segments = psc; 
     pfc.Add(fig); 
     pg.Figures = pfc; 
     path.Data = pg; 
+0

Я использовал код Джона внутри загружен окно(), но кривая не была там. в то время как код xaml отлично работал. Он не показывает никакой ошибки или желаемого выхода. Или это»я поместил 2-й код в неправильном месте. Я поместил все в C# код в классе МОФ. Искомое предложения, Спасибо заранее – 2010-01-25 19:28:26

0
Path path = new Path(); 
path.Stroke = Brushes.Black; 
path.StrokeThickness = 1; 
PathGeometry pg = new PathGeometry(); 
PathFigureCollection pfc = new PathFigureCollection(); 
PathFigure fig = new PathFigure(); 
fig.StartPoint = new Point(10,100); 
PathSegmentCollection psc = new PathSegmentCollection(); 
BezierSegment bs1 = new BezierSegment(new Point(100, 0), new Point(200, 200), new Point(300, 100), true); 
psc.Add(bs1); 
fig.Segments = psc; 
pfc.Add(fig); 
pg.Figures = pfc; 
path.Data = pg; 
canvas.Children.Add(path); 
+0

Джон был совершенным, но пропустили две строки. fig.StartPoint = новая точка (10 100); и canvas.Children.Add (путь); – subho

Смежные вопросы