比如一个textbox,直接存储为一个图像。我建立一个项目,这个项目中有好多的textbox,根据不同的frame,有的显示在屏幕上,有的不显示。我需要把它们直接合成为图片,而不是一个一个的从屏幕上截图,因为有的textbox并不在屏幕上显示,但是生成图片以后是应该有的。高手给看看吧。

解决方案 »

  1.   

    试一试control.DrawToBitmap参考http://www.dotnetspider.com/resources/4650-Save-e-Form-o-er-controls-Bitmap.aspx
      

  2.   

    msdn上有些注意事项:
    The DrawToBitmap method is not supported for ActiveX controls. You can override the OnPrint event and provide custom printing logic if required.The DrawToBitmap method has the following limitations:An ArgumentException might be thrown for large bitmaps. The maximum allowable size varies by machine.DrawToBitmap does not support the Ink controls for the Windows XP Tablet PC Edition 2005 operating system.DrawToBitmap does not draw a child TextBox if the Visible property of the TextBox is set to false.Controls inside containers are rendered in reverse order.DrawToBitmap is not fully functional for the RichTextBox; only the border of a bitmap is drawn
      

  3.   

    没说清楚,我要用的是mshtml edit这个控件,是activeX控件,不支持DrawToBitmap 方法。
      

  4.   

    而且还有个问题就是,如果 TextBox 的 Visible 属性设置为 false,则 DrawToBitmap 不绘制子 TextBox。
    我想用数据中的一段html文生成的图片,那么这个必然是不可见的控件,怎么办?
      

  5.   

    解析XAML,自己绘制:类似MFC自绘控件的作法.
    一个TextBox不就是一个矩形框吗?
    一个Button不就是加个阴影吗?
    一个ComboBox,ListBox,CheckBox,RadioBox不就是几个图形的组合吗?
    如果要皮肤,加上就是了.