Добавление строк на каждом холсте недействительность из списка строк в WPF
У меня есть код для рисования линии на холсте в wpf. Линия рисуется с помощью события мыши. Когда линия нарисована, она также добавляется в список линий. Я хочу перерисовывать эти линии каждый раз, когда холст становится недействительным, как мы это делаем в случае Paint панели winform.
private void Panel_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { line = true; Point pointToWindow = Mouse.GetPosition(this); Point pointToScreen = PointToScreen(pointToWindow); DsP1 = new Point(pointToWindow.X, pointToWindow.Y - 150); if (e.ButtonState == MouseButtonState.Released) { line = false; ln = new System.Windows.Shapes.Line(); ln.X1 = DsP1.X; ln.Y1 = DsP1.Y; ln.X2 = e.GetPosition(Panel).X; ln.Y2 = e.GetPosition(Panel).Y; ln.Stroke = pen; Panel.Children.Add(ln); Lines.Add(ln); } }
private void Panel_MouseMove(object sender, MouseEventArgs e) { if (line == true && e.LeftButton==MouseButtonState.Pressed) { Panel.Children.Remove(ln); ln = new System.Windows.Shapes.Line(); ln.X1 = DsP1.X; ln.Y1 = DsP1.Y; ln.X2 = e.GetPosition(Panel).X; ln.Y2 = e.GetPosition(Panel).Y; ln.Stroke = pen; Panel.Children.Add(ln); } }
Что я уже пробовал:
Я уже пробовал переопределить рендеринг с помощью..
protected override void OnRender(DrawingContext drawingContext) { base.OnRender(drawingContext); foreach(Line l in Lines){ Panel.Childeren.add(l); } }
это не работает... без понятия