Centrar um caractere individual com DrawString
Tentei de todas as maneiras sugeridas para centralizar o texto, mas não consigo obter os resultados desejados ao centralizar um caractere individua
Eu tenho um retângulo. Nesse retângulo, estou desenhando um círculo com DrawEllipse. Agora, quero desenhar um único caractere dentro do círculo usando o mesmo retângulo e DrawString, para mantê-lo perfeitamente centralizad
Aqui está meu código básico:
StringFormat stringFormat = new StringFormat();
stringFormat.Alignment = StringAlignment.Center;
stringFormat.LineAlignment = StringAlignment.Center;
using (Graphics g = Graphics.FromImage(xImage))
{
g.SmoothingMode = SmoothingMode.AntiAlias;
g.TextRenderingHint = TextRenderingHint.AntiAlias;
g.CompositingQuality = CompositingQuality.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.FillEllipse(fillBrush, imageRect.X, imageRect.Y, imageRect.Width - 1, imageRect.Height - 1);
g.DrawString(Text, font, Brushes.White, imageRect, stringFormat);
}
O texto está centralizado horizontalmente ... mas não está devidamente centralizado verticalmente. Usando um caractere simétrico como um "I" maiúsculo, acho que a parte superior do caractere está sempre muito mais próxima da borda do retângulo do que a parte inferior do caractere. A distância é provavelmente pelo menos um aumento de 50%.
Suponho que ele esteja medindo espaço suficiente para caracteres como um "j" minúsculo que fica mais baixo. No entanto, como estou tentando criar um ícone gráfico com uma única letra, desejo uma centralização mais precisa.