我有一个需要拖放功能的Silverlight应用程序,因为我允许用户拖放文件以上传到系统中.
但是我遇到的问题是导航总是落后于Silverlight应用程序.我尝试打开“无窗口”,但不得不将其关闭,因为我丢失了拖放功能(Microsoft doesn’t support it)
我需要做些什么来使我的导航出现在silverlight应用程序的顶部(param name =“Windowless”value =“true”不是一个选项,除非有一种方法可以使用它来拖放)?
Silverlight添加到HTML
<div id="silverlightControlHost" style="float:left; width:400px; height:300px;">
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="220px">
<param name="source" value="../ClientBin/FileImport.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.50826.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
<iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe>
</div>
导航菜单
<div id="NavigationControl">
<ul class="sf-menu sf-js-enabled sf-shadow">
<li><a id="Navigation_1" href="...">Item 1</a></li>
<li class="sfHover"><a id="Navigation_2" class="sf-with-ul">Item 2<span class="sf-sub-indicator">»</span></a>
<ul style="visibility: visible; display: block;">
<li><a id="Navigation0_1" href="...">Child 1</a></li>
<li><a id="Navigation0_2" href=".." class="sf-with-ul">Children<span class="sf-sub-indicator">»</span></a>
<ul style="display: none; visibility: hidden;">
<li><a id="Navigation1_1" href="...">Thing 1</a></li>
<li><a id="Navigation1_2" href="...">Thing 2</a></li>
<li><a id="Navigation1_3" href="...">Thing 3</a></li>
<li><a id="Navigation1_4" href="...">Thing 4</a></li>
<li><a id="Navigation1_5" href="...">Thing 5</a></li>
<li><a id="Navigation1_6" href="...">Thing 6</a></li>
<li><a id="Navigation1_7" href="...">Thing 7</a></li>
<li><a id="Navigation1_8" href="...">Thing 8</a></li>
</ul>
</li>
<li><a id="Navigation2_1" href="...">Box 1</a></li>
<li><a id="Navigation2_2" href="...">Box 2</a></li>
<li><a id="Navigation2_3" href="...">Box 3</a></li>
<li><a id="Navigation2_4" href="...">Box 4</a></li>
</ul>
</li>
<li><a id="Navigation_3" href="..">Item 3</a></li>
</ul>
</div>
导航控制CSS
#NavigationControl {
height: 23px;
background-color: transparent;
position: relative;
z-index: 10000;
}
页面上的一切概述
<html>
<head>
//link to SuperFish CSS & JS
//link to Silverlight download if missing JS
</head>
<body>
<div id="NavigationControl"></div>
<div id="silverlightControlHost"></div>
</body>
</html>
解决方法
为了能够通过Silverlight应用程序呈现HTML内容,您需要将silverlight插件配置为以Windowless身份运行.
<param name="windowless" value="true" />
http://msdn.microsoft.com/en-us/library/cc838156(VS.95).aspx
在无窗口模式下,插件直接在浏览器窗口上呈现silverlight内容,而不是在浏览器框架中的子窗口中呈现.因此,页面HTML可以覆盖silverlight内容.
注意:在无窗口模式下运行确实会产生一些性能影响,请阅读上面的链接以获取更多详细信息.
这是一个可能有帮助的例子

