Как изменить стиль обводки? - PullRequest
1 голос
/ 04 января 2010

Рассмотрим этот код:

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?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 января 2010

Попробуйте это как общий случай:

        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);

Здесь необходимо изменить толщину жирного круга, отрегулировав ширину, высоту в положительном направлении и отрегулировав верхнюю и левую стороны в отрицательном направлении наполовину до последнего.

0 голосов
/ 04 января 2010

Есть несколько способов: один из них (в 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" />

...