我正在尝试在我的应用程序中创建灯箱效果。为了实现这一点,我有一个用户控件,它带有一个代表半透明覆盖的面板和一个单独的面板,其中包含所有必要的内容。
当我展示这个 UserControl 时,它经常尝试渲染自己 2-3 次,导致背景看起来越来越暗。我想过在 UserControl 中执行以下操作
protected override void OnPaint ( PaintEventArgs e )
{
if ( Parent != null )
{
Parent.Refresh();
}
base.OnPaint( e );
}
不幸的是,这似乎会导致可怕的循环效果,即 Parent red-raws itelf 然后 teh UserControl 重绘 itelf ......非常混乱。有没有办法以某种方式阻止这种情况?可能通过从应用程序中获取打印屏幕图像,在用户控件中显示该图像,并在顶部覆盖?
编辑
我注意到了这个问题,尽管我希望我不需要为我创建的每个灯箱创建一个新表单!