在同一按钮单击上打开并关闭同一窗口

时间:2014-01-27 16:39:42

标签: c# xaml

在我的MenuItem上,我打开一个窗口。然后,如果该人选择再次点击该MenuItem,我需要打开的窗口关闭。

然后很明显,如果他们第三次点击它就会打开,所以第四次。

XAML

<MenuItem x:Name="btnHelp" Click="btnHelp_Click" Foreground="#FF7E8385" FontFamily="Calibri" FontSize="18" Margin="110,10,0,0" Height="30" Width="70" Style="{x:Null}" BorderBrush="Transparent" Background="Transparent" Cursor="Hand"/>

代码

private void btnHelp_Click(object sender, RoutedEventArgs e)
{
    xamlHelp help = new xamlHelp();
    help.Show();
}

2 个答案:

答案 0 :(得分:4)

您需要将变量设置为实例字段,而不是局部变量,以便可以在调用之间访问它。此时,如果它存在则关闭它,如果不存在则重新显示/显示它:

private xamlHelp help = null;
private void btnHelp_Click(object sender, RoutedEventArgs e)
{
    if (help != null)
    {
        help.Close();
        help = null;
    }
    else
    {
        help = new xamlHelp();
        help.Show();
    }
}

答案 1 :(得分:1)

您可以跟踪当前是否显示帮助,并根据该信息显示/隐藏

private xamlHelp help = new xamlHelp();
private bool showingHelp = false;
private void btnHelp_Click(object sender, RoutedEventArgs e)
{
    if (showingHelp)
    {
        help.Hide();
    }
    else
    {
        help.Show();
    }
}