簡単に言うと、次のような方法でビットマップにコントロール (例: ボタン) を描画しています。
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);
}
}
すべてのコントロールが正しく描画されていますが、正しく描画されていないのはテキストだけです。
コントロールの動作に関する知識の限界に達しました。正しく描画されていない部分がテキストだけである理由がわかりません。
フォントを正しく表示するには何が欠けていますか?