C# 消息周围的不透明性
在winform中,是否可以在弹出屏幕周围制作高不透明度的poup屏幕?如果是,如何进行 如何使弹出式消息或GUI屏幕位于计算机屏幕的中间? 请记住,我还没有任何源代码 例如:C# 消息周围的不透明性,c#,winforms,C#,Winforms,在winform中,是否可以在弹出屏幕周围制作高不透明度的poup屏幕?如果是,如何进行 如何使弹出式消息或GUI屏幕位于计算机屏幕的中间? 请记住,我还没有任何源代码 例如: 要在屏幕中央显示您的表单,请使用StartPosition表单属性至中心屏幕 this.StartPosition = FormStartPosition.CenterScreen; 现在,将屏幕其余部分变成灰色。 采用新的表单将其命名为frmBlur,并设置这些属性 this.BackColor = System
要在屏幕中央显示您的
表单
,请使用StartPosition
表单属性至中心屏幕
this.StartPosition = FormStartPosition.CenterScreen;
现在,将屏幕其余部分变成灰色。 采用新的
表单
将其命名为frmBlur,并设置这些属性
this.BackColor = SystemColors.ControlDark;
this.FormBorderStyle = FormBorderStyle.None;
this.Opacity = 0.8;
this.ShowInTaskbar = false;
this.TopMost = true;
this.WindowState = FormWindowState.Maximized;
现在,使用下面的代码显示MessageBox或winform
private void button1_Click(object sender, EventArgs e)
{
using (frmBlur ob = new frmBlur())
{
ob.Show();
frmMessage f = new frmMessage();
f.TopMost = true;
f.ShowDialog();
}
}
你说的是在邮件周围使屏幕的其余部分变灰(或变暗)吗?在web应用程序中通常指的效果?此效果应保留给UAC提示。模拟它只会让你的用户感到困惑,并使使用其他程序变得不必要的困难。她的下一步可能是运行您的卸载程序。虽然我倾向于同意Hans的观点,但我也很感激您的客户可能会要求此功能。这就是为什么我建议您只将应用程序的窗口显示为灰色,而不是整个屏幕。UAC会使整个屏幕变暗,并使其他应用程序难以使用。如果你只对自己的应用程序进行灰色处理,用户会更清楚发生了什么,他们仍然可以切换到不同的应用程序。除非你必须这样做,否则不要这样做,但如果你必须这样做,这是正确的方法。我不会把它放在首位,因为这会阻止用户与计算机上的其他应用程序交互。由于该示例不是系统模式对话框,因此它应该只限制对应用程序其余部分的访问。最简单的方法是使用
ShowDialog
方法(而不是Show
)并适当设置Z顺序。“并适当设置Z顺序”。我不明白这个上下文?你真的不必设置z顺序。仅显示灰色窗体的对话框;然后(在灰色窗体的OnShown中)显示实际对话框的对话框。如果您想让它看起来更漂亮,请使灰色窗体与您要隐藏的主窗体的形状和大小完全相同。@Fullmetalboy:对,如果您以正确的顺序显示窗体,Z顺序将自动正确设置。你只需要手动管理它,如果你做的事情是无序的。我的意思是,你的主窗体应该在背景中,上面是深色的透明窗体,最后是你的消息框在Z顺序的最上面。