在使用Modalpopupextender.Show()的时候,发现页面上的Silverlight会把它档住了,导致Modalpopupextender不是显示在最上层。开始以为是样式的问题,于是乎设置了z-index,结果还是不起作用。然后,GOOGLE以下,原来是要将Silverlight的Windowless设置为true就可以了。具体代码如下:
<object id='xx'....>
...
<param name="windowless" value="true"/>
...
</object>
这样,Modalpopupextender就可以正常弹出并显示在最上层了。但是,如果设置了windowless,会存在一些问题,具体如下(摘MSDN):
无窗口模式的限制如下:
-
性能问题。无窗口模式需要进行大量的计算,与透明插件背景相结合时更是如此。。
-
不支持将鼠标输入传递到插件与之重叠的 HTML 内容,即使在该插件具有透明背景时也是这样。若要通过 HTML 处理鼠标输入,HTML 必须与 Silverlight 插件重叠。
-
在插件的边界外没有鼠标捕获支持。
-
没有辅助功能或 IME 支持。
-
在全屏模式下不支持无窗口模式。
-
不支持在使用超链接导航到新窗口时禁止显示弹出窗口阻止程序。此外,还要注意的是,在 Safari 上不支持禁止显示弹出窗口阻止程序,无论窗口模式如何。
-
由于浏览器和平台限制而产生的问题:
-
在 Windows XP 上、禁用了 DWM 的 Windows Vista 上和 Internet Explorer 中(与平台无关),在动画和视频播放中出现可视的撕裂。
-
在与 Safari 中的 HTML 内容重叠时,呈现不可靠。
-
基于 Mozilla 的浏览器中的焦点问题。当焦点在该插件和其他插件或 HTML 控件之间移动时,多个控件有时候显得具有焦点。
-
关于Windowless更多具体的阐述,可以查看MSDN中的Windowless解析。