Silverlight每日一贴:你知道吗,你需要设置isWindowless为true来实现HTML覆盖
AndyWan(放飞梦想) [翻译]
2007-12-16 16:25:22
来源:Jesse Liberty's Blog
浏览次数: 186
应用于:
  • Microsoft Silverlight
  • Microsoft Silverlight 1.0
Tags:
当你创建一个Silverlight对象的时候,其中有一个参数需要传递的是isWindowless。该参数默认为false。

一般情况下,你的确需要设置isWindowless为false,因为当设置为true的时候,你需要承担很大的性能消耗。但是尽管如此,有两种情况你必须设置它为true:
1. 如果你需要把背景设置为透明,你必须设置isWindowless为true。
2. 如果你需要在你的Silverlight控件上面覆盖一个HTML控件,你必须设置isWindowless为true。

第二种情况使用HTML覆盖出现得非常的频繁。如果想要看它是怎样工作的,你可以使用Visual Studio 2008创建一个新的Silverlight 1.0的应用程序。然后添加下面的代码到default.html:
<select id="colors"  style=" position:relative; left:20px; top:30px ">
        <option>"Black"</option>
        <option>"Red"</option>
        <option>"Orange"</option>
        <option>"Yellow"</option>
        <option>"Green"</option>
        <option>"Blue"</option>
        <option>"Indigo"</option>
        <option>"Violet"</option>
</select>

运行此程序,你会看到HTML中的下拉框立即被示例XAML代码创建的按钮给覆盖了。正如前面所提到的,isWindowless默认是false,所以Silverlight控件是有窗口的(windowed)。窗口的(windowed)Silverlight控件的z-index为1,它永远在最顶层。

打开default.HTML.JS并修改isWindowless参数的值为true,然后重新运行该程序。这一次HTML覆盖显示到了Silverlight控件的上面。无窗口的(windowless)Silverlight控件的z-index不再是1,所以你可以覆盖HTML控件到它们上面。