16

我想在 silverlight 中创建一个弹出对话框,我可以在其中操作控件、输入数据并返回一个值。我希望它是模态的,这样当它打开时,“下面”页面是不可访问的。我还没有找到一个简单的方法来做到这一点。有什么建议么?

4

6 回答 6

12

我知道这个问题要求使用 Silverlight 2 解决方案,但在 Silverlight 3(现在是测试版,2009 年 7 月的 RTW)中,有一个内置的 ChildWindow 可以做你正在寻找的一切。

于 2009-06-04T08:38:17.867 回答
5

我也没有找到完美的解决方案。我见过的最接近的是: Using Popup to create a Dialog class

如果可以是非模态的,您可以使用 HtmlPage.PopupWindow() 尝试此提示。 如何弹出浏览器窗口

于 2008-11-03T22:19:13.407 回答
1

我是 Sliverlight 框架的新手,刚刚开始弄清楚,但我对弹出模式对话框也有类似的需求。我刚刚尝试了一个看起来很有希望的想法:

  1. 我创建了一个覆盖整个应用程序区域的矩形(名为“Shield”)。它存在于主应用程序中的所有内容之上。我将填充画笔设置为白色,将不透明度画笔设置为 81%,以便主应用程序内容显示出来,但轻微(如禁用)。然后确保“盾牌”是可命中测试的。现在,当“屏蔽”可见时,它实际上也会阻止对下面控件的所有输入(至少来自鼠标,还没有尝试过键盘)。当应用程序初始化时,将“Shield”可见性设置为 Collapsed。在这种状态下,它不会阻止对主应用程序的输入。
  2. 然后在屏蔽顶部的 z 顺序中存在的另一个画布元素上构建对话框。通常对话框是不可见的,但是当我需要它时,我只需将“屏蔽”设置为可见,并将对话框设置为可见。由于对话框位于“Shield”之上,因此我得到了一种非常类似于模态的行为。关闭对话框后,使对话框画布和“屏蔽”画布再次不可见,并且主应用程序再次处于活动状态。

我确信这是最暴力的方式,并且我最终会在一个更优雅的结构上归零,但它现在有效。

于 2008-12-11T01:24:58.830 回答
1

一个更优雅的解决方案在这里:http: //community.devexpress.com/blogs/theonewith/archive/2008/08/06/custom-silverlight-controls-creating-a-reusable-messagebox-dialog-part-i.aspx

于 2009-01-26T16:10:31.550 回答
0

我有同样的要求,ScottGu 的使用用户控件构建基本模式对话框是符合我要求的最佳解决方案。

于 2009-11-25T07:38:16.630 回答
0

这是一个免费的图书馆,提供一个:http ://www.vectorlight.net/demos/popup_dialogs.aspx

于 2010-03-08T02:35:18.590 回答