VCL C++ 응용 프로그램에서 이식 된 사용자 지정 컨트롤로 문제를 해결하려고합니다. 개념은 컨트롤의 개별 부분이 새 Graphics 객체에서 먼저 그려지고 컨트롤의 paint 메서드에서 Graphics 객체와 병합된다는 것입니다.그래픽 개체를 병합해도 텍스트가 올바르게 렌더링되지 않습니다.
나는 간단한 예를 만들었습니다
using System.Drawing;
using System.Windows.Forms;
namespace Test
{
public class Form1 : Form
{
private PictureBox pictureBox;
public Form1()
{
pictureBox = new PictureBox();
pictureBox.Dock = DockStyle.Fill;
pictureBox.Paint += new PaintEventHandler(pictureBox_Paint);
ClientSize = new Size(100, 50);
Controls.Add(pictureBox);
}
private void pictureBox_Paint(object sender, PaintEventArgs e)
{
SolidBrush blackBrush = new SolidBrush(Color.Black);
Bitmap bitmap = new Bitmap(pictureBox.Width, pictureBox.Height);
Graphics graphics = Graphics.FromImage(bitmap);
Font font = new Font(pictureBox.Font, FontStyle.Regular);
graphics.DrawString("simple test", font, Brushes.Black, 0, 0);
e.Graphics.DrawImage(bitmap, 0, 0);
}
}
}
텍스트의 위의 코드 결과를 실행하면 너무 두꺼운 그려지 :
내가 텍스트를 그리는 코드를 수정
PictureBox의 Graphics 개체에 직접 연결하면 올바른 결과를 얻습니다.
이 문제는 텍스트 렌더링에서만 발생합니다. 선과 다른 모양이 올바르게 렌더링됩니다. 어떤 아이디어가 이것을 해결하는 방법?
미리 감사드립니다.
대단히 감사합니다. – user828227