none
DrawingContext 如何绘制贝塞尔曲线 RRS feed

答案

  • 用DrawingContext.DrawGeometry 方法

      <Grid>
        <local:MyDC xmlns:local="clr-namespace:WpfApplication1"/>
      </Grid>
    

    C#:

      public class MyDC:UIElement
      {
        protected override void OnRender(DrawingContext drawingContext)
        {
          PathFigure myPathFigure = new PathFigure();
          myPathFigure.StartPoint = new Point(10, 20);
          myPathFigure.Segments.Add(new BezierSegment(new Point(10, 20), new Point(200, 20), new Point(50, 50), true));
    
          PathGeometry myPathGeometry = new PathGeometry();
          myPathGeometry.Figures.Add(myPathFigure);
    
          drawingContext.DrawGeometry(Brushes.Transparent, new Pen(Brushes.Red, 2),
            myPathGeometry);
          base.OnRender(drawingContext);
        }
      }
    

     


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    • 已标记为答案 Mr.Brandy 2012年1月18日 6:23
    2012年1月16日 5:31
    版主

全部回复

  • 用DrawingContext.DrawGeometry 方法

      <Grid>
        <local:MyDC xmlns:local="clr-namespace:WpfApplication1"/>
      </Grid>
    

    C#:

      public class MyDC:UIElement
      {
        protected override void OnRender(DrawingContext drawingContext)
        {
          PathFigure myPathFigure = new PathFigure();
          myPathFigure.StartPoint = new Point(10, 20);
          myPathFigure.Segments.Add(new BezierSegment(new Point(10, 20), new Point(200, 20), new Point(50, 50), true));
    
          PathGeometry myPathGeometry = new PathGeometry();
          myPathGeometry.Figures.Add(myPathFigure);
    
          drawingContext.DrawGeometry(Brushes.Transparent, new Pen(Brushes.Red, 2),
            myPathGeometry);
          base.OnRender(drawingContext);
        }
      }
    

     


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    • 已标记为答案 Mr.Brandy 2012年1月18日 6:23
    2012年1月16日 5:31
    版主
  • 谢谢大神
    2012年1月16日 6:15