Click here to Skip to main content
11,496,146 members (517 online)
The site is currently in read-only mode for maintenance. Posting of new items will be available again shortly.
See more: C#
I have this code in c# and I want to replace it to wpf. how can I do it?:
protected override void OnPaint(PaintEventArgs pe)
     {
         GraphicsPath p = new GraphicsPath();
         Pen borderPen = new Pen(Color.Red, 3);
         p.AddPolygon(new Point[]
         {
             new Point(-3, this.Height *13/22),
             new Point(this.Width *2/13, -3),
             new Point(this.Width*9/11,0),
             new Point(this.Width,this.Height*2/5),
             new Point(this.Width*6/7,this.Height*170/171),
             new Point(this.Width*2/11,this.Height*170/171)
         });
         this.Region = new Region(p);
 
         if (bold)
         {
             Point[] point = new Point[]
             {
                 new Point(1,this.Height *13/22),
                 new Point(this.Width *2/13, 1),
                 new Point(this.Width*9/11,1),
                 new Point(this.Width*11/17,this.Height *13/22)
             };
             pe.Graphics.DrawPolygon(borderPen, point);
         }
 
         base.OnPaint(pe);
     }
Posted 24-Aug-12 0:07am
Comments
ridoy at 24-Aug-12 5:11am
   
so strange question!

1 solution

The rough idea is this:
PointCollection points = new PointCollection(
{
  new Point(-3, this.Height *13/22),
  new Point(this.Width *2/13, -3),
  new Point(this.Width*9/11,0),
  new Point(this.Width,this.Height*2/5),
  new Point(this.Width*6/7,this.Height*170/171),
  new Point(this.Width*2/11,this.Height*170/171)
 
});
Polygon polygon = new Polygon();
polygon.Points = points;
polygon.Stroke = Brushes.Red;
polygon.StrokeThickness = 3;
polygon.Width = this.Width;
polygon.Height = this.Height;
Then all you need to do is add it to whatever Container you have set in your XAML. Suppose it's a Grid called LayoutRoot, you'd use
LayoutRoot.Children.Add(polygon);
I leave you to add the isBold stuff because that's so similar.
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 Sergey Alexandrovich Kryukov 10,401
1 OriginalGriff 8,910
2 Sascha Lefèvre 3,899
3 Maciej Los 3,422
4 Richard Deeming 2,600


Advertise | Privacy | Mobile
Web03 | 2.8.150520.1 | Last Updated 24 Aug 2012
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100