【问题标题】:How to find if child window is opened or not如何查找子窗口是否打开
【发布时间】:2012-08-29 16:50:52
【问题描述】:

我有一个需求,我需要检查是否有任何记录发生了变化,这取决于我需要提醒用户。 因此,每 5 秒使用一次计时器,我试图从数据库中进行验证并向用户显示警报窗口。工作得很好。

问题在于,如果用户长时间处于空闲状态。随着时间的推移,我会收到多个警报窗口。(考虑每 2 秒的数据更改)。

所以我需要知道警报窗口是否已经打开,如何获取打开窗口的实例,我可以对其进行一些操作。

在这里我不想创建任何单个实例。请让我知道是否有任何方法可以直接在 Silverlight 中完成。

【问题讨论】:

  • 我不熟悉silverlight,但您能否将事件处理程序附加到当用户确认该警报窗口时设置页面变量的警报?在打开新警报之前,请检查变量是否已被确认?
  • 如您所说,您每 5 秒显示一次警报,是否为此使用线程?

标签: wpf silverlight silverlight-4.0 timer telerik


【解决方案1】:

假设您使用的是 Telerik windows(因为问题被标记为 Telerik),请尝试

RadWindowManager.Current.CloseAllWindows();

或者如果你需要更多的控制,你可以使用遍历当前打开的窗口

RadWindowManager.Current.GetWindows()

【讨论】:

    【解决方案2】:

    在您的应用程序中将您的子窗口创建为单例(声明私有成员),然后相应地打开和关闭它,并确保释放您的实例(等于 null)。有了它,您只需要检查您的“子窗口”是否与 null 不同,这意味着它是打开的,如果不是,那么您创建一个实例并打开它。

    【讨论】:

    • 我不想创建单个实例。对不起,我应该在我的问题中提到它。
    【解决方案3】:

    您可以通过 Application.Current.Windows 进行枚举(包括您的应用程序创建的所有窗口)。您可以在那里找到您的警报窗口并将其置于前台或创建新窗口。

    【讨论】:

    • 我们没有 Application.Current.Windows 选项。你的不行。
    猜你喜欢
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多