ПРИМЕЧАНИЕ. Я не ищу решение XAML.Чертежная линия, прикрепленная к двум формам
У меня возникли проблемы с выяснением того, как присоединить линию к двум формам. Лучшее видимое представление того, что я ищу, было бы двумя шариками, прикрепленными к обоим концам прямой палки. Проблема, с которой я сталкиваюсь, заключается в том, как отображать линию, которая зависит как от позиций положения ball01 и ball02. На данный момент оба шара отображаются, как я хочу, но когда ball02 отходит от ball01 (ball02 начинается с центра на ball01), линия не видна.
ball01 = new Ellipse() { Height = BIG_SIZE, Width = BIG_SIZE };
ball01.Fill = baseBrush;
ball01.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased);
setBall01X(e.GetPosition(canvas).X - (BIG_SIZE/2));
setBall01Y(e.GetPosition(canvas).Y - (BIG_SIZE/2));
Canvas.SetLeft(ball01, getBall01X());
Canvas.SetTop(ball01, getBall01Y());
canvas.Children.Add(ball01);
ball02 = new Ellipse() { Height = SMALL_SIZE, Width = SMALL_SIZE };
ball02.Fill = childBrush;
ball02.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased);
setBall02X(e.GetPosition(canvas).X - (SMALL_SIZE/2));
setBall02Y(e.GetPosition(canvas).Y - (SMALL_SIZE/2));
Canvas.SetLeft(ball02, getBall02X());
Canvas.SetTop(ball02, getBall02Y());
canvas.Children.Add(ball02);
// line's X's and Y's are to point to the center of both balls
// Regardless of where the balls move.
line01 = new Line()
{
X1 = getBall01X() + (BIG_SIZE/2),
Y1 = getBall01Y() + (BIG_SIZE/2),
X2 = getBall02X() + (SMALL_SIZE/2),
Y2 = getBall02Y() + (SMALL_SIZE/2)
};
line01.Fill = baseBrush;
line01.SnapsToDevicePixels = true;
line01.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased);
line01.StrokeThickness = 2;
// Canvas.Set???
canvas.Children.Add(line01);
Это было очень грубо и неуместно – SpicyWeenie