如何查找子窗口是否打开

时间:2012-08-29 16:50:52

标签: wpf silverlight silverlight-4.0 timer telerik

我有一个要求,我需要检查是否有任何记录已经更改,具体取决于我需要提醒用户。 因此,我每5秒使用一次计时器,我试图从数据库验证并向用户显示警报窗口。工作得很好。

问题是,如果用户长时间闲置。随着时间的推移,我会收到多个警报窗口。(考虑每2秒的数据变化)。

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

这里我不想创建任何单个实例。如果有任何方法可以直接在silverlight中完成,请告诉我。

3 个答案:

答案 0 :(得分:1)

假设您正在使用Telerik窗口(因为问题标记为Telerik),请尝试

RadWindowManager.Current.CloseAllWindows();

或者如果您需要更多控制权,可以使用

通过当前打开的窗口进行迭代
RadWindowManager.Current.GetWindows()

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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