2016-03-10 3 views
1

У меня есть приложение WinForms (разработанное в Win 7 64x) с помощью элемента управления CheckBox. Я установил свойство AutoScaleMode моей формы в «None». Форма отлично выглядит на моей машине.GUI Glitch: текст в блоке не показан в Windows 8

Однако, когда я посылаю программу моего коллеги, который работает для Windows 8, текст CheckBox оказывается неполным. Я не уверен, какое свойство этого элемента управления вызывает это.

+0

Не устанавливайте 'AutoScaleMode' в' None' - исправьте свой макет для работы с разными шкалами. Это более важно, чем когда-либо в наши дни - в настоящее время на многих машинах есть большие DPI, и ваше приложение будет очень сложно использовать на дисплеях с высоким разрешением DPI. – Luaan

ответ

2

Я не уверен, что свойство этого элемента управления является причиной этого.

Ну, очевидно, это свойство AutoScaleMode. Или, я полагаю, более точно, это свойство «Размер».

Аппарат вашего коллеги имеет не только элементы управления различного размера, но и текст разного размера. Это можно увидеть, сравнив скриншоты. Разрешенный размер элемента checkbox слишком мал (недостаточно широко), чтобы отобразить всю метку, поэтому она усекается, и все, что вы видите, это первые две буквы метки.

Решение довольно просто: увеличьте область управления. Лучшей идеей было бы позволить это изменение размера автоматически, установив свойство AutoScaleMode вашей формы контейнера на нечто более разумное, например Text или DPI. Это гарантирует, что он не сломается, если у пользователя будет другой параметр DPI или шрифта, чем на вашем компьютере.

Долгосрочный, лучше спроектировать ваши формы с помощью жидкого макета с помощью TableLayoutPanel или FlowLayoutPanel в сочетании с свойствами якоря и док-станции. Это больше, чем перетаскивание в дизайнере, но оно дает гораздо лучшие результаты, которые масштабируются во всех средах.

+0

Я попробовал как «Font», так и «Dpi» как AutoScaleMode, но сбой все еще существует. – Disasterkid

Смежные вопросы