#c#
#c#
Вопрос:
Я хочу переместить форму из заданной позиции A в B за заданный промежуток времени. Это должно выглядеть плавно для человеческого глаза.
Конечно, я мог бы попытаться вычислить расстояние, на которое должна скользить форма, разделить его на таймфрейм * 25 (25 кадров в секунду), а затем переместить его соответствующим образом. Проблема в том, что результат не будет целым числом для каждого случая, и я не могу переместить, например, 2,3 пикселя.
Другим решением могло бы быть использование вычисления сверху и округление значения в меньшую / большую сторону и повторное вычисление после перемещения формы. Я просто думаю, что это может быть немного тяжеловато, поскольку мне пришлось бы корректировать временные рамки после каждого перемещения и выполнять вычисления снова и снова.
У меня нет никакого доступного кода, это всего лишь некоторые теоретические размышления, и я надеюсь, что кто-нибудь сможет указать мне правильное направление.
Прежде чем кто-либо спросит, я не хочу перемещать содержимое формы, я знаю, что есть несколько способов сделать это, я хочу переместить всю форму.
Комментарии:
1. Это WinForms или WPF. WPF поддерживает субпиксельное позиционирование.
2. Я считаю, что вы можете перемещать объекты в значения с плавающей запятой.
3. Вычисление занимает несколько наносекунд. Это не проблема.
4. В WPF это было бы довольно тривиально (т. Е. Переход и т.д.), И вам даже не нужно было бы обрабатывать вычисления.
5. это winforms. @HansPassant хорошо, если ты так говоришь… Я попробую. Я просто подумал, что есть способ получше.