WPF的showDialog问题

yanbo710148546 2012-07-02 01:35:11
最近在做一个数据监测的项目,需求是在主界面实现刷新的同时,可以同步刷新正在打开的曲线图界面,首次执行的时候没有问题,曲线也能实时刷新,但是当我关闭曲线图窗口重新打开时就会报错“关闭 Window 之后,无法设置 Visibility,也无法调用 Show、ShowDialogor 或 WindowInteropHelper.EnsureHandle。”,因为我是在主界面创建的曲线图实例,所以不能在打开之前新建窗口实例,否则就不能实现同步刷新了,我查了资料说重写窗口的Close方法,让窗口在关闭的时候Hide而不是close,代码如下:

/// <summary>
/// 重写Close
/// </summary>
/// <param name="e"></param>
protected override void OnClosed(EventArgs e)
{ this.Hide(); }


但是我重写之后,问题同样存在,请高手指点..




但是我重写之后,问题同样存在,请高手指点..
...全文
534 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
iyomumx 2012-08-10
  • 打赏
  • 举报
回复
你应该重写OnClosing……
haylhf 2012-08-10
  • 打赏
  • 举报
回复
e.Hanlded=true;
宝_爸 2012-07-02
  • 打赏
  • 举报
回复


public bool CloseAllowed { get; set; }

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) {
if (!CloseAllowed) {
this.Visibility = System.Windows.Visibility.Hidden;
e.Cancel = true;
}
}


代码和解释来自:

http://stackoverflow.com/questions/4179758/how-to-detect-that-a-window-has-used-up-its-showdialog-call

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧