C# 如何更改笔划样式?

C# 如何更改笔划样式?,c#,.net,wpf,graphics,styles,C#,.net,Wpf,Graphics,Styles,考虑以下代码: 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); canv

考虑以下代码:

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);
我看到我的圆圈2位于圆圈的边缘。 如何定义MyCurn的笔划样式,这样MyCycli2将位于MyLoad的中间?


谢谢

有几种方法:一种是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" />

将此作为一般情况进行尝试:

        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);
这里的调整是通过调整正方向的宽度、高度,以及将负方向的顶部和左侧调整一半以重新居中,来适应粗体圆圈的厚度