[Solved, решено как частный случай] Windows 8.1. C# задать новое положение окна без дёргания окна?
Привет.
Положение окна выставляю самым заурядным способом
window.Top=NNN
window.Left=NNN
.Width
.Height
Но заметил странность, что окно начинает заметно "анимировать" при этих операциях. Т.е. окно не просто пропадает на старом месте и появляется на новом, а видно, как оно появляется на новом, потом меняются его размеры, как буд-то каждая операция .Top, .Left, .Width и .Heght сопровождается перерисовкой (всё происходит быстро, но заметить можно).
Есть ли способ задания этих параметров так, чтобы окно не перерисовывалось при изменении какого-то одного параметра, а только всех сразу?
Решение:
Разворачиваю главное окно программы на ВЕСЬ экран. Если экранов несколько, то суммирую их размеры, чтобы главное окно программы перекрывало все экраны. Главное окно прозрачное, поэтому его всё равно не видно. А теперь главный фокус: главное окно программы остаётся на месте всё время, а вот рамка и индикаторы перемещаются внутри главного невидимого окна, которое находится поверх экрана:
Осталось сделать несколько декартовых преобразований, чтобы определить положение рамки с индикаторами относительно главного окна. А уж в нём-то перерисовка осуществляется без всяких анимаций!!!