1.只有在revit中使用UI按钮的情况下
new一个窗口出来的时候判断是否存在,如果存在了,再点击的时候,就用IsVisible判断,则不让第二次点击的窗口创建。
注:需要窗口是静态的
2.此时会有一个问题
这样能实现点击同一个按钮时,第二次点击无效,即不弹出俩个一样的窗口。但是在关闭了窗口时报错:关闭 Window 之后,无法设置 Visibility,也无法调用 Show、ShowDialogor 或 WindowInteropHelper.EnsureHandle。”
这个时候需要用到重写onclosing方法:
/// <summary>
/// 重写OnClosing事件 解决窗口关闭不能再开的bug。
/// </summary>
/// <param name="e"></param>
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
this.Hide();
e.Cancel = true;
}
或者:
加个事件就能完成效果了!