【问题标题】:How to change the stroke style?如何改变笔画风格?
【发布时间】:2010-01-04 15:04:48
【问题描述】:

考虑这段代码:

Ellipse myCircle = new Ellipse();
myCircle.Width = 400;
myCircle.Height = 400;
myCircle.Stroke = Brushes.PeachPuff;
myCircle.StrokeThickness = 25;
myCircle.ToolTip = "Bold Circle";
Canvas.SetTop(myCircle, 0);
Canvas.SetLeft(myCircle, 0);
canvas.Children.Add(myCircle);

Ellipse myCircle2 = new Ellipse();
myCircle2.Width = 400;
myCircle2.Height = 400;
myCircle2.Stroke = Brushes.Black;
myCircle2.StrokeThickness = 1;
Canvas.SetTop(myCircle2, 0);
Canvas.SetLeft(myCircle2, 0);
canvas.Children.Add(myCircle2);

我看到 myCircle2 位于 myCircle 的边缘。 如何定义 myCircle 的笔划样式,使 myCircle2 位于 myCircle 的中间?

谢谢!

【问题讨论】:

    标签: c# .net wpf graphics styles


    【解决方案1】:

    有几种方法:一种是(在 XAML 中)

    <Canvas>  
    <Ellipse Width="400" Height="400"  Stroke="PeachPuff" StrokeThickness="25" />
    <Ellipse Width="375" Height="375"  Stroke="Black" StrokeThickness="1" Margin="12.5 12.5 0 0" />
    

    【讨论】:

      【解决方案2】:

      试试这个作为一般情况:

              int diameter = 400;
              int thickness = 25;
      
              Ellipse myCircle = new Ellipse();
              myCircle.StrokeThickness = thickness;
              myCircle.Width = diameter + thickness;
              myCircle.Height = diameter + thickness;
              myCircle.Stroke = Brushes.PeachPuff;
              myCircle.ToolTip = "Bold Circle";
              Canvas.SetTop(myCircle, -thickness/2);
              Canvas.SetLeft(myCircle, -thickness / 2);
              canvas.Children.Add(myCircle);
      
              Ellipse myCircle2 = new Ellipse();
              myCircle2.Width = diameter;
              myCircle2.Height = diameter;
              myCircle2.Stroke = Brushes.Black;
              myCircle2.StrokeThickness = 1;
              Canvas.SetTop(myCircle2, 0);
              Canvas.SetLeft(myCircle2, 0);
              canvas.Children.Add(myCircle2);
      

      这里的调整是为了适应你的粗体圆的粗细,正方向调整宽度、高度,负方向上下调整一半到居中。

      【讨论】: