Do panelu Canvas rysuję linię:
Line linia_gora = new Line();
linia_gora.Stroke = System.Windows.Media.Brushes.Silver;
linia_gora.StrokeThickness = 2;
linia_gora.X1 = iks;
linia_gora.X2 = iks + (LVCanvas.ActualWidth / 5);
linia_gora.Y1 = igrek;
linia_gora.Y2 = igrek;
LVCanvas.Children.Add(linia_gora);
Próbuję dołączyć do Line zdarzenie myszy, żeby po wciśnięciu i przytrzymaniu lewego klawisza myszy można było zmieniać położenie tej linii.
Udało mi się zrobić tak, że dodaję:
linia_gora.MouseMove += new MouseEventHandler(line_MouseD);
void line_MouseD(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
((Line)sender).Stroke = Brushes.Red;
Point pointToWindow = Mouse.GetPosition(LVCanvas);
((Line)sender).X1 = pointToWindow.X;
((Line)sender).X2 = pointToWindow.X + LVCanvas.ActualWidth / 5;
((Line)sender).Y1 = pointToWindow.Y;
((Line)sender).Y2 = pointToWindow.Y;
}
}
To działa, ale tylko gdy kursor znajduje się nad tym elementem(zdarzenie MouseMove). Czy ktoś mógłby podpowiedzieć na jaki event zmienić MouseMove żeby uzyskać odpowiedni efekt?