长话短说,我正在以类似于以下方式在位图中绘制一个控件(例如:一个按钮):
using (Bitmap controlBitmap = new Bitmap(control.Width, control.Height))
{
using (Graphics controlGraphic = Graphics.FromImage(controlBitmap))
{
PaintEventArgs args = new PaintEventArgs(controlGraphic, control.ClientRectangle);
MethodInfo info = control.GetType().GetMethod("OnPaintBackground", BindingFlags.Instance | BindingFlags.NonPublic);
info.Invoke(control, new object[] { args });
info = control.GetType().GetMethod("OnPaint", BindingFlags.Instance | BindingFlags.NonPublic);
info.Invoke(control, new object[] { args });
graphic.DrawImage(controlBitmap, control.Left, control.Top);
}
}
虽然所有控件都正确绘制,但唯一不正确的是文本。
我有点达到了我对控件行为方式的了解的极限。我不知道为什么文本是唯一没有正确绘制的部分。
为了使字体正确显示,我缺少什么?