コントロールだけのイメージをBitmapとしてキャプチャー可能か調べてみました。
画面全体をキャプチャーしたい場合は、「Windows Mobile(.NET Compact Frameworks)でタイトルバー領域とソフトキー領域を含めて画面イメージをキャプチャーする - 酢ろぐ!」を、タイトル領域を除いたアプリ画面をキャプチャーしたい場合は「Windows Mobileでタイトルバー領域とソフトキー領域を含めずに画面イメージをキャプチャーする - 酢ろぐ!」をご覧ください。
以下にサンプルコードを示します。
|cs| public class Window3 { private const int SRCCOPY = 0xCC0020;
[DllImport("coredll.dll")]
private static extern int BitBlt(IntPtr hDestDC,
int x, int y, int nWidth, int nHeight, IntPtr hSrcDC,
int xSrc, int ySrc, int dwRop);
public static Bitmap CaptureControl(Control ctrl)
{
Bitmap bmp = null;
using (Graphics g = ctrl.CreateGraphics())
{
bmp = new Bitmap(ctrl.ClientRectangle.Width,
ctrl.ClientRectangle.Height);
using (Graphics memg = Graphics.FromImage(bmp))
{
IntPtr dc1 = g.GetHdc();
IntPtr dc2 = memg.GetHdc();
BitBlt(dc2, 0, 0, bmp.Width, bmp.Height, dc1, 0, 0, SRCCOPY);
g.ReleaseHdc(dc1);
memg.ReleaseHdc(dc2);
}
}
return bmp;
}
} ||<