AlexXYZ
@AlexXYZ
O Keep Clear O

[Solved, решено как частный случай] Windows 8.1. C# задать новое положение окна без дёргания окна?

Привет.
Положение окна выставляю самым заурядным способом
window.Top=NNN
window.Left=NNN
.Width
.Height

Но заметил странность, что окно начинает заметно "анимировать" при этих операциях. Т.е. окно не просто пропадает на старом месте и появляется на новом, а видно, как оно появляется на новом, потом меняются его размеры, как буд-то каждая операция .Top, .Left, .Width и .Heght сопровождается перерисовкой (всё происходит быстро, но заметить можно).
Есть ли способ задания этих параметров так, чтобы окно не перерисовывалось при изменении какого-то одного параметра, а только всех сразу?
  • Вопрос задан
  • 350 просмотров
Решения вопроса 1
AlexXYZ
@AlexXYZ Автор вопроса
O Keep Clear O
Решил. Частный случай.
Результат:

041785659a30481b8f0b5832b9d51023.gif


Решение:
Разворачиваю главное окно программы на ВЕСЬ экран. Если экранов несколько, то суммирую их размеры, чтобы главное окно программы перекрывало все экраны. Главное окно прозрачное, поэтому его всё равно не видно. А теперь главный фокус: главное окно программы остаётся на месте всё время, а вот рамка и индикаторы перемещаются внутри главного невидимого окна, которое находится поверх экрана:

046140d9ed7649dcbdc67ff4f45d470a.png

Осталось сделать несколько декартовых преобразований, чтобы определить положение рамки с индикаторами относительно главного окна. А уж в нём-то перерисовка осуществляется без всяких анимаций!!!

Решено!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы