我使用DrawToBitmap方法获取UserControl的位图副本。原来,在某些情况下,DrawToBitmap无法提供我的控件布局的精确副本。这就是为什么我决定隐藏继承成员DrawToBitmap使用' new'改性剂。
public new void DrawToBitmap(Bitmap bitmap, Rectangle targetBounds)
{
// my code here
}
但现在我面临另一个问题。下面的代码仍在执行错误的' DrawToBitmap。
foreach( Control ctrl in Controls)
{
Bitmap bmp = new Bitmap(Width, Height);
ctrl.DrawToBitmap(bmp, new Rectangle(Point.Empty, Size));
}
为了改进它,我被迫以这种方式改变代码
foreach( Control ctrl in Controls)
{
Bitmap bmp = new Bitmap(Width, Height);
if(ctrl is MyUserControl)
((MyUserControl)m_target).DrawToBitmap(bmp, new Rectangle(Point.Empty, Size));
else
ctrl.DrawToBitmap(bmp, new Rectangle(Point.Empty, Size));
}
对我来说这看起来很难看。我该如何妥善解决?