C# 按下按钮时防止多个打开的.XMAL窗口

C# 按下按钮时防止多个打开的.XMAL窗口,c#,wpf,expression-blend,C#,Wpf,Expression Blend,伙计们,当按钮按下事件发生时,我如何防止打开已经打开的WPF窗口(不使用用户控件,也不添加到windows窗体) 我有以下代码,但每次我按下按钮,它将打开WPF窗口根据按钮按下的金额 有人知道如何防止这种错误吗 谢谢, private void button1_Click(object sender, RoutedEventArgs e) { win2 v2 = new win2(); v2.Show(); } 在这里,当我每次点击上面的按钮

伙计们,当按钮按下事件发生时,我如何防止打开已经打开的WPF窗口(不使用用户控件,也不添加到windows窗体)

我有以下代码,但每次我按下按钮,它将打开WPF窗口根据按钮按下的金额

有人知道如何防止这种错误吗 谢谢,

 private void button1_Click(object sender, RoutedEventArgs e)
    {
        win2 v2 = new win2();
        v2.Show();

    }
在这里,当我每次点击上面的按钮,它会打开一个窗口,但当它已经打开;如果我点击同一个按钮,它将打开另一个窗口,而不是聚焦到已经打开的窗口

我怎样才能防止呢? (我使用的是C#)

私有无效按钮1\u单击(对象发送器,RoutedEventArgs e)
{
如果(!Application.Current.Windows.OfType().Any())
{
win2 v2=新的win2();
v2.Show();
}   
}
Application.Current.Windows列出了您的程序拥有的所有当前打开的窗口。我们可以检查是否有任何类型为
win2
的已打开文件,如果没有,我们将创建一个新文件。

private void button1\u单击(对象发送方,RoutedEventArgs e)
{
如果(!Application.Current.Windows.OfType().Any())
{
win2 v2=新的win2();
v2.Show();
}   
}

Application.Current.Windows列出了您的程序拥有的所有当前打开的窗口。我们可以检查是否有属于
win2
类型的已打开窗口,如果没有,我们将创建一个新窗口。

您可以使用
Application.Current.Windows
查找应用程序中所有打开的窗口

如果它包含您的
窗口
键入
激活
将其锁定到焦点,如果集合不包含您的
窗口
创建一个新窗口

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();      
    }
}
private void按钮1\u单击(对象发送者,路由目标)
{
if(Application.Current.Windows.OfType().Any())
{
Application.Current.Windows.OfType().First().Activate();
}
其他的
{
新建win2().Show();
}
}

您可以使用
Application.Current.Windows
查找应用程序中所有打开的窗口

如果它包含您的
窗口
键入
激活
将其锁定到焦点,如果集合不包含您的
窗口
创建一个新窗口

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();      
    }
}
private void按钮1\u单击(对象发送者,路由目标)
{
if(Application.Current.Windows.OfType().Any())
{
Application.Current.Windows.OfType().First().Activate();
}
其他的
{
新建win2().Show();
}
}

我只是想知道我是否能够在blend上创建的wpf窗口上使用上述代码。它会起作用的。还是我必须使用其他代码?。请给我解释一下。感谢you@RoshiEnd我认为这应该适用于所有WPF,但您可能必须对其进行测试以确保:)我只是想知道我是否能够在blend上创建的WPF窗口上使用上述代码。它会起作用的。还是我必须使用其他代码?。请给我解释一下。感谢you@RoshiEnd我认为这应该适用于所有WPF,但您可能需要对其进行测试以确保:)
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();      
    }
}