Я хочу использовать сглаженные шрифты в приложении C #. Я прочитал здесь , как это можно сделать с событием Paint каждой формы:
public class SmoothingFonts : System.Windows.Forms.Form
{
...
private void InitializeComponent()
{
...
this.Paint += this.SmoothingFonts_Paint;
}
private void SmoothingFonts_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Font TextFont = new Font("Verdana", 25, FontStyle.Italic);
e.Graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
e.Graphics.DrawString("Sample Text", TextFont, Brushes.Black, 20, 150);
}
}
Это может стать громоздким, потому что мы уже сделали много форм. Также в каждой форме мы используем несколько типов форм. Может ли настройка для TextRenderingHint
быть установлена глобально?
РЕДАКТИРОВАТЬ 1
Приведенный пример, хотя он и устарел, как правильно указано nobugz , помог мне понять, что лучшим TextRenderingHint
для использования в этой системе является AntiAliasGridFit
. Аппаратная платформа закрыта, поэтому я могу заверить, что лучшая конфигурация для этой системы будет наилучшей для всех систем, где будет развернуто приложение.
Можно ли установить настройку по умолчанию для TextRenderingHint
в любом месте? Я запускаю приложение в образе Windows Embedded Standard (ранее Windows XP Embedded).
РЕДАКТИРОВАТЬ 2
Я обнаружил, что в системе XP вы можете установить тип TextRenderingHint
, используемый по умолчанию в реестре. Это не по методу приложения, а по методу пользователя. Ключи реестра:
HKCU\Control Panel\Desktop\FontSmoothing {2 for activating font smoothing}
HKCU\Control Panel\Desktop\FontSmoothingType {1 for Antialiasing, 2 for ClearType}
Спасибо за поддержку!