如何将我的应用程序窗口置于前面?例如,我的应用程序需要注意.
这是我的个人计划.我需要这个功能.
这就是我得到的.但它没有 100%的工作时间.
public void BringToFrontToEnterCaptha()
{
if (InvokeRequired)
{
Invoke(new Action(BringToFrontToEnterCaptha));
}
else
{
this.TopMost = true;
this.Focus();
this.BringToFront();
this.textBox1.Focus();
this.textBox1.Text = string.Empty;
System.Media.SystemSounds.Beep.Play();
}
}
public void BringToBackAfterEnterCaptha()
{
if (InvokeRequired)
{
Invoke(new Action(BringToBackAfterEnterCaptha));
}
else
{
this.TopMost = false;
}
}
Run Code Online (Sandbox Code Playgroud)
我从背景工作者那里打电话给他们.
BringToFrontToEnterCaptha();
while (!ready)
{
Thread.Sleep(100);
}
BringToBackAfterEnterCaptha();
Thread.Sleep(300);
Run Code Online (Sandbox Code Playgroud)
按"接受"按钮后,bool ready设置为true.
我工作得很好,但并不总是.
我有一个WPF窗口,我没有关闭.相反,我做Hide()和Show()它.现在,当我在记录中的网格中双击我的MainWindow时,将触发Show()窗口,窗口将始终显示在MainWindow后面.我已经尝试了休息,但没有成功:
view.Show();
view.Activate();
view.Topmost = true;
view.Topmost = false;
view.Focus();
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以让窗户绝对到前面?我无法将MainWindow设置为所有者.
如果我有一个窗口,我怎样才能确保窗口永远不会隐藏在屏幕外?
这很重要,因为有时如果用户添加或删除监视器,如果我们记住之前的位置,窗口可能会永久隐藏在屏幕外.
我正在使用WPF+ MVVM.