MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Класс Font. Как изменить расстояние между буквами и сделать менее жирным текст?"
Answer 837298
Как увеличить расстояние между буквами
Например, используя для рисования текста функции GDI вместо GDI+:
using System; using System.Windows.Forms; using System.Drawing; using System.Runtime.InteropServices; namespace WindowsFormsTest1 { public partial class Form1 : Form { [DllImport("gdi32.dll")] public static extern int SetTextCharacterExtra( IntPtr hdc, int nCharExtra ); [DllImport("gdi32.dll")] static extern bool TextOut(IntPtr hdc, int nXStart, int nYStart, string lpString, int cbString); [DllImport("gdi32.dll")] public static extern IntPtr SelectObject(IntPtr hdc, IntPtr hgdiobj); IntPtr hfont; public Form1() { InitializeComponent(); Font font = new Font("Courier New", 10, FontStyle.Regular); hfont = Font.ToHfont(); } private void panel1_Paint(object sender, PaintEventArgs e) { IntPtr hdc = e.Graphics.GetHdc(); try { var res = SetTextCharacterExtra(hdc, 10); //расстояние между символами IntPtr prev_font = SelectObject(hdc, hfont); string str = "Надпись"; TextOut(hdc, 130, 16, str, str.Length); SelectObject(hdc, prev_font); } finally { e.Graphics.ReleaseHdc(hdc); } } } }
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.