Я думаю, что мне не хватает чего-то фундаментального. Пожалуйста, скажите мне, что это такое, если сможете.Почему здесь требуется UseCompatibleTextRendering?
Я разработал небольшое приложение C++ WinForms, используя VS2008. Поэтому он построен с использованием .NET 3.5 SP1. Моя разработка - это Win7, если это имеет значение.
Значение по умолчанию для свойства UseCompatibleTextRendering в элементах управления WinForms является ложным в этой версии VStudio. И это не имеет значения для меня, я не думаю. У меня нет нарисованного на заказ текста .
Приложение выглядит хорошо работает на моей коробке Win7.
Если я упакую его (перетаскивая .NET 3.5) и устанавливаю его на один из наших настольных компьютеров WinXP, кнопки и метки не выглядят хорошо; текст отрубается в них.
Если я установил UseCompatibleTextRendering в true и затем запустил его в коробках XP, текст вставляется в кнопки и метки .
Мой вопрос: Почему? Установка помещает .Net 3.5 в коробки XP, поэтому приложение должно иметь возможность находить и использовать правильную версию WinForms, правильно?
Следует отметить, что до того, как я разместил свое приложение + .NET 3.5 в этих блоках, у них вообще нет .NET. Они не получают автоматические обновления Microsoft; наш ИТ-парень закрывает патчи и обновления.
[Такие вещи случались раньше с приложениями, которые я создаю .. они отлично смотрятся/работают на инженерных машинах, потому что мы поддерживаем их, и у них в основном есть обновленные материалы. Когда они запускаются на корпоративных ящиках, они обычно не запускаются и нуждаются в установке VCredist. ]
Назад к вопросу: текст выглядит лучше, если для параметра UseCompatibleTextRendering установлено значение false, поэтому я предпочел бы сохранить его таким образом, если смогу. Я хотел бы понять, что может отсутствовать в этих коробках XP, что делает текст не подходящим.
Благодаря
S
Ну, это интересный момент. Элементы управления, которые затронуты, не имеют того же размера шрифта, что и форма. Шрифт больше. В качестве эксперимента я просто попробовал изменить шрифт по умолчанию для формы большего размера .. все это стало больше (yuck), но текст кнопки/метки не был отрублен на XP. Попробуйте свое предложение сейчас .. – HotOil
В окне разработки ручное масштабирование формы с помощью вашего кода создает расширенную форму с побочным эффектом. Элементы управления с отрубленным текстом находятся в панели на форме. После масштабирования формы панель не появляется. Не уверен, где она находится, нужно отлаживать это дальше. Помимо этого. AutoScaleMode установлен в «Шрифт» в форме. Я изменил его на «DPI», и теперь он выглядит хорошо на коробках XP. Это хорошая новость .. но я не уверен, что это окончательное решение? Что делать, если в каком-то другом окне есть проблема с размером системного шрифта? Кажется, что нет единого размера для всех? – HotOil
Ну, нет, масштабирование - это несовершенное искусство. Вот почему есть значения * two * для AutoScaleMode. это не должно меняться, изменение DPI также должно изменить базовый размер шрифта. За исключением ящиков, которые вы используете. Вздох. Давайте все купим мониторы 600 DPI. –