伙伴们如何在按下按钮事件时阻止打开已经打开的WPF窗口(不使用用户控件而不是添加到窗体中)?
我有以下代码,但每按一下按钮,它会根据按钮按下的数量打开WPF窗口。
任何人都知道如何防止这种错误 谢谢,
private void button1_Click(object sender, RoutedEventArgs e)
{
win2 v2 = new win2();
v2.Show();
}
这里,每当我点击上面的按钮时,它会打开一个窗口,但是当它已经打开时;如果我点击相同的按钮,它将打开另一个窗口而不是聚焦到已经打开的窗口。
我该如何预防呢? (我使用C#)
答案 0 :(得分:1)
win2 v2 = null;
private void button1_Click(object sender, RoutedEventArgs e)
{
if (v2 == null)
{
v2 = new win2();
v2.Show();
}
else
v2.Activate();
}
答案 1 :(得分:1)
您可以使用Application.Current.Windows
查找应用程序中所有打开的窗口。
如果它包含您的Window
类型Activate
,则会将其关注焦点,如果该集合不包含您的Window
,则创建一个新的
private void button1_Click(object sender, RoutedEventArgs e)
{
if (Application.Current.Windows.OfType<win2>().Any())
{
Application.Current.Windows.OfType<win2>().First().Activate();
}
else
{
new win2().Show();
}
}
答案 2 :(得分:0)
private void button1_Click(object sender, RoutedEventArgs e)
{
if(!Application.Current.Windows.OfType<win2>().Any())
{
win2 v2 = new win2();
v2.Show();
}
}
Application.Current.Windows列出了程序拥有的所有当前打开的窗口。我们可以检查是否已经打开win2
类型的任何一个,如果没有,那么我们创建一个新的。