При масштабировании горизонтальная полоса прокрутки и метка смещаются вверх больше, чем должны - PullRequest
0 голосов
/ 13 июля 2010

У меня есть форма, где есть горизонтальная полоса прокрутки, а под ней надпись внизу.Здесь я применил утилиту увеличения, то есть всякий раз, когда я нажимаю кнопку увеличения, когда размер этикетки увеличивается в 1,1 раза, и так далее.Горизонтальная полоса прокрутки остается того же размера, но ее расположение изменяется в соответствии с меткой при масштабировании, то есть она продолжает смещаться по мере того, как метка расширяется или сжимается в соответствии с масштабированием.Полоса прокрутки застряла с меткой.

Теперь проблема, с которой я сталкиваюсь, заключается в том, что при масштабировании масштабирование происходит нормально, но расположение метки меняется ненормально.Он сдвигается при увеличении, но слишком сильно.Расстояние между нижней частью и надписью намного больше, чем расстояние между горизонтальной полосой прокрутки и надписью.

Я использую этот код для задания местоположения надписи на форме:

label.Location = new Point(label.Location.X, this.Height - label.Size.Height);

Как равномерно увеличить его так, чтобы расстояние, увеличенное до и после метки, было одинаковым и равным?Горизонтальная полоса прокрутки перемещается нормально и застревает над этикеткой.

1 Ответ

0 голосов
/ 13 июля 2010

Похоже, вы должны учитывать свойство AutoScrollPosition вашего контейнера прокрутки.Вы можете сбросить это значение до (0,0), прежде чем сбросить местоположение своей метки.При прокрутке верхний левый угол видимой клиентской области обрабатывается как источник, а не «истинный» верхний левый угол контейнера без прокрутки.

Например:

container.AutoScrollPosition = new Point( 0, 0 );
label.Location = new Point( 0, 0 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...