Mario  Meir-HuberVerschiedene LineSegments in WPF/Silverlight von Code


Will man mithilfe des Path ein "X" zeichnen, so bedient man sich in XAML eines einfachen "Move" Befehls, damit die einzelnen Segmente nicht verbunden sind. Komplexer gestaltet sich dieses Problem jedoch dann, wenn man einen Pfad von Code zeichnen will. Hierfür benötigt man mehrere Figuren.

Das vorgehen ist folgendermaßen:

1. Man erstellt 2 Figuren

2. Man erstellt 2 Segmente

3. Man weißt die Segmente den Figuren zu

4. Man fügt die Figuren einer PathFigureCollection hinzu

5. Die PathFigureCollection wird der PathGeometry des Pfades zugewiesen

6. Man setzt die Startpunkte für die in (2) erstellten Segmente. Diese müssen jeweils 0,0 und 100,0 sein (damit keine irritierenden Linien entstehen)

7. Man fügt 2 diagonale Linien hinzu (jeweils den in Punkt 2 erstellten Segmenten)

8. FERTIG

Ein Code könnte in etwa so aussehen:

Path p = new Path();

PathGeometry Geom = new PathGeometry();
PathFigureCollection GFigure = new PathFigureCollection();
PathFigure Figure = new PathFigure();
PathFigure Figure2 = new PathFigure();
PathSegmentCollection Segment = new PathSegmentCollection();
PathSegmentCollection Segment2 = new PathSegmentCollection();

Figure.Segments = Segment;
Figure2.Segments = Segment2;

GFigure.Add(Figure);
GFigure.Add(Figure2);
Geom.Figures = GFigure;

Figure.StartPoint = new Point(0, 0);
Figure2.StartPoint = new Point(100, 0);

Segment.Add(new LineSegment() { Point = new Point(0, 0) });
Segment.Add(new LineSegment() { Point = new Point(100, 100) });

Segment2.Add(new LineSegment() { Point = new Point(100, 0) });
Segment2.Add(new LineSegment() { Point = new Point(0, 100) });

p.Stroke = new SolidColorBrush(Colors.Red);
p.StrokeThickness = 2;

p.Data = Geom;


Kategorien: .Net;C#;Silverlight;Silverlight 2;Silverlight Mobile;WPF; 25.09.2008 12:35:02


 


Neuen Kommentar einfügen:

  Titel:     
  Name:  
  E-Mail:
  Kommentar:

 
 
 


Kommentare




© Copyright 2008 ppedv AG