Задача - нарисовать линию по выбору соответствующей кнопки на панели инструментов. В своём коде я пробую реализовать следующий алгоритм: кликаем LMB на рабочую область, переносим курсор в другое место, удерживая LMB нажатой, отпускаем LMB - рисуется линия по координатам места, где кнопка была нажата и где отпущена. Объявляю глобальные переменные:
Point EndPosition;
Point StartPosition;
Код:
private void inkCanvas1_MouseDown(object sender, MouseButtonEventArgs e)
{
FrameworkElement fe = sender as FrameworkElement;
StartPosition = e.MouseDevice.GetPosition(fe);
}
private void Line_Click(object sender, RoutedEventArgs e)
{
linePressed = true;
}
private void inkCanvas1_MouseUp(object sender, MouseButtonEventArgs e)
{
FrameworkElement fe = sender as FrameworkElement;
EndPosition = e.MouseDevice.GetPosition(fe);
if (linePressed)
{
this.inkCanvas1.EditingMode = InkCanvasEditingMode.Ink;
Line l = new System.Windows.Shapes.Line();
l.X1 = StartPosition.X;
l.X2 = EndPosition.X;
l.Y1 = StartPosition.Y;
l.Y2 = EndPosition.Y;
l.Stroke = Brushes.Red;
l.StrokeThickness = 5;
inkCanvas1.Children.Add(l);
}
}
В результате линии рисуются следующим образом:
Как можно это исправить?
P.S Пробовал выводить координаты EndPosition
в момент рисования в консоли, но безуспешно.
Установите в InkCanvas
свойство EditingMode="None"
и не меняйте его в коде. В режиме EditingMode="Ink"
элемент не отслеживает событие MouseDown
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть dataGridView, в котором выведена БДХочу, чтобы при двойном щелчке по ячейке открывалось изображение, которое хранится как ссылка в ячейке
Как изменить фоновый цвет приложения WinForms сделанное с помощью фреймворка MetroFramework ?
Как должно все работатьПри свайпах по панели должна вращаться камера