Кто-нибудь знает, как сделать метки или текст более гладкими? На данный момент они выглядят довольно неровными. Поскольку я хочу сделать метку динамической, я не могу просто вставить текст из Photoshop.
Как сделать текст/метки гладкими?
Ответы (4)
Вам придется динамически генерировать изображения, представляющие ваш текст, если вы хотите сгладить его. Вот пример на msdn: http://msdn.microsoft.com/en-us/library/a619zh6z.aspx
EDIT: редактирование каждого комментария ниже.
Ссылка описывает использование события OnPaint вашего элемента управления для использования другого TextRenderingHint. Если вам нужно что-то более пригодное для повторного использования, вы можете создать класс Custom Label, который расширяет класс Label, и использовать его в своих формах:
public partial class CustomLabel : Label
{
private TextRenderingHint _hint = TextRenderingHint.SystemDefault;
public TextRenderingHint TextRenderingHint
{
get { return this._hint; }
set { this._hint = value; }
}
protected override void OnPaint(PaintEventArgs pe)
{
pe.Graphics.TextRenderingHint = TextRenderingHint;
base.OnPaint(pe);
}
}
Добавьте новый пользовательский элемент управления с именем CustomLabel (или как вы хотите его назвать) и используйте приведенный выше код. Перестройте свой проект, и вы увидите, что элемент управления CustomLabel появится на панели инструментов вверху в категории «Компоненты MyProject». На панели свойств для этой пользовательской метки вы увидите новое свойство TextRenderingHint. Установите это на «Сглаживание». Добавьте еще одну метку в форму и сравните, как они выглядят.
Если вы хотите по умолчанию использовать AntiAlias, просто измените значение по умолчанию частной переменной.
Вы имеете в виду ClearType? Затем в Windows необходимо включить ClearType и использовать современный шрифт, например Tahoma. или Segoe UI, а не MS Sans Serif.
Обновить
Вы опубликовали пример проблемы. Я увеличил его до 400 %. Ясно, что субпиксельное сглаживание ClearType включено. Лично я не думаю, что текст выглядит неровным. Если вам нужен текст на экране более высокого качества, вы можете купить экран с более высоким физическим разрешением (пикселей на дюйм), а затем нарисовать текст (соответственно) большего размера. Тогда текст будет иметь тот же размер на вашем экране, но выглядеть будет гораздо более плавно.
Вы также можете отказаться от ClearType и использовать какой-нибудь другой алгоритм сглаживания шрифтов, но это далеко не тривиально, потому что ClearType — это система сглаживания шрифтов в Windows.
Обновление 2
Если вы используете Windows 7, вы можете точно настроить ClearType. Просто откройте меню «Пуск», напишите «ClearType» и запустите руководство. Я думаю, что есть руководства для Vista и XP, но, возможно, они не установлены по умолчанию, а доступны в виде PowerToys или чего-то в этом роде...
Установите программу MacType, она сглаживает ваш шрифт Windows, как MacOS, я не знаю, почему Microsoft не исправляет свой шрифт Windows Smoothness? Если бы Microsoft исправила свои шрифты, мне не нужно было бы устанавливать стороннее приложение для таких вещей, как то, что является фундаментальным для Windows.