Автоматическое управление размерами в .NET CF, чтобы избежать горизонтальной прокрутки? - PullRequest
1 голос
/ 30 января 2009

Я разрабатываю форму в .NET Compact Framework, которая содержит переменное количество элементов управления. Каждый элемент управления должен иметь такую ​​же ширину, что и форма. Когда есть только несколько элементов управления, вертикальная полоса прокрутки не появляется. Когда элементов управления больше, чем они могут поместиться в одной форме, появляется вертикальная полоса прокрутки. Затем следует изменить ширину элементов управления, чтобы горизонтальная полоса прокрутки не появлялась.

Каков наилучший способ достичь этого? Меня интересует решение, которое будет работать на всех платформах / размерах экрана и может поддерживать изменения ориентации экрана.

Ответы [ 3 ]

2 голосов
/ 30 января 2009

Если я правильно понял, в какой-то момент появляются вертикальная и горизонтальная полосы прокрутки, а вам нужна только вертикальная полоса прокрутки? Разве установка Anchor каждого элемента управления «Top | Left | Right» не решает эту проблему автоматически?

1 голос
/ 03 февраля 2009

Если каждый элемент управления должен иметь такую ​​же ширину, что и форма, почему бы просто не закрепить каждый элемент управления сверху (или снизу)? Это позаботится об изменении размера для вас тогда. Однако это может выглядеть не очень привлекательно, поэтому я предлагаю добавить несколько пустых панелей (закрепленных таким же образом), которые будут использоваться в качестве вертикальных прокладок.

0 голосов
/ 30 января 2009

Я провел небольшое быстрое тестирование, и, кажется, когда вы добавляете элементы управления, панель вызывает событие изменения размера, когда добавленный элемент управления переключает полосы прокрутки, чтобы стать видимыми. Раздражает то, что событие resize запускается несколько раз при запуске :( Но, зная компактные рамки, это может быть вашим лучшим способом справиться с этим.

Обычно на полной структуре вы могли бы, если бы DisplayRectangle был больше, чем размер панели, но такого не существует на cf.

Надеюсь, это поможет, я посмотрю, смогу ли я найти что-нибудь еще утром.

...