Я пытаюсь понять, как написать код, чтобы время отклика между движением мыши и рисованием линии было мгновенным.Каждый раз, когда я делаю это, всегда есть лага между 2. Я закодировал это в формах Windows, и теперь я кодирую это в WPF.
Проблема определенно заключается в коде, а не в моем компьютере.
В основном это работает так.Нажмите где угодно, и точка1 будет создана.Переместите мышь, и точка2 будет обновлена, и от точки1 до точки2 будет проведена линия, которая изменяется при движении мыши.
ниже - мой чрезвычайно простой код, позволяющий это сделать. Это может показаться мгновенным, но если развернуть окно и развернуть его,сделайте длинную линию и быстро двигайте мышь, вы можете заметить это легче ..
Кроме того, в будущем будет слой под этим слоем, который наверняка заставит его отставать еще больше .. Носейчас я просто хочу оптимизировать это.
Когда я использовал другие подобные программы более 5 лет назад, движение линии было фактически мгновенным.Вот почему я запутался, почему с этим более новым кодированием, его запаздывает ..
Point mLoc;
Line myLine = new Line();
public MainWindow()
{
InitializeComponent();
SnapsToDevicePixels = false;
myLine.Stroke = System.Windows.Media.Brushes.White;
myLine.StrokeThickness = 1;
canvas1.Children.Add(myLine);
}
private void onMMove(object sender, MouseEventArgs e)
{
mLoc = Mouse.GetPosition(canvas1);
myLine.X2 = mLoc.X;
myLine.Y2 = mLoc.Y;
}
private void onMLClick(object sender, MouseButtonEventArgs e)
{
mLoc = Mouse.GetPosition(canvas1);
myLine.X1 = mLoc.X;
myLine.Y1 = mLoc.Y;
}