2010-12-01 39 views
0

我开发了一个显示文档列表的Silverlight控件。这需要整合开发者喜欢的那么多或者少的空间。来自小Silverlight控件的大型ChildWindow?

但是,当用户添加文档时,我使用ChildWindow在文档实际上传之前获取一堆元数据。该对话框可能相当大。

我们发现了一种全屏的方式,但我们认为这会让用户感到惊讶(而不是惊喜和喜悦!)。有没有更好的方法来允许此对话框使用比父Silverlight容器更多的屏幕空间?

回答

0

有趣的问题。有一段时间,我认为你可以通过调用主机页面的JavaScript来打开真正的或者假的HTML弹出框来避开这个问题。然后这个弹出窗口将成为另一个Silverlight实例,然后可以根据需要调整大小。

然而,这种解决方案有几个挑战:

  1. 列表项
  2. 您需要将原来的SL实例和/或主机页面
  3. 您需要乱动的假冒“modalness” JavaScript的,虽然这在很大程度上是由使用jQuery
  4. 目标SL实例缓解应仔细尺寸,使得ChildWindow覆盖整个表面,以掩盖事实,那就是这里
  5. 另一个实例0
  6. 您需要建立一种方法,将ChildWindow中获取的数据传回原始SL实例;你可以通过将其存储在主机的DOM或者使用内置的local messaging

SL的做到这一点虽然没有挑战是交易破,它可能是一个有点太多的工作,走出自己的安乐窝,或者由于施加其他外部限制而不可能。

但它是一个整洁的小解决方法,不是吗?