8

我有一个需要拖放功能的 Silverlight 应用程序,因为我允许用户拖放文件以上传到系统中。

但是,我遇到了导航总是落后于 Silverlight 应用程序的问题。我尝试打开“无窗口”但不得不将其关闭,因为我失去了拖放功能(微软不支持它

我需要做些什么才能使我的导航出现在 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="获取 Microsoft Silverlight" style="border-style:none"/>
      </a>
    </对象>
    <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="...">第 1 项</a></li>
        <li class="sfHover"><a id="Navigation_2" class="sf-with-ul">第 2 项<span class="sf-sub-indicator">»</span></a>
            <ul style="可见性:可见;显示:块;">
                <li><a id="Navigation0_1" href="...">孩子 1</a></li>
                <li><a id="Navigation0_2" href=".." class="sf-with-ul">儿童<span class="sf-sub-indicator">»</span></a>
                    <ul style="display: none; visibility: hidden;">
                        <li><a id="Navigation1_1" href="...">事物 1</a></li>
                        <li><a id="Navigation1_2" href="...">事物 2</a></li>
                        <li><a id="Navigation1_3" href="...">事物 3</a></li>
                        <li><a id="Navigation1_4" href="...">事物 4</a></li>
                        <li><a id="Navigation1_5" href="...">事物 5</a></li>
                        <li><a id="Navigation1_6" href="...">事情 6</a></li>
                        <li><a id="Navigation1_7" href="...">事物 7</a></li>
                        <li><a id="Navigation1_8" href="...">事物 8</a></li>
                    </ul>
                </li>
                <li><a id="Navigation2_1" href="...">方框 1</a></li>
                <li><a id="Navigation2_2" href="...">方框 2</a></li>
                <li><a id="Navigation2_3" href="...">方框 3</a></li>
                <li><a id="Navigation2_4" href="...">方框 4</a></li>
            </ul>
        </li>   
        <li><a id="Navigation_3" href="..">第 3 项</a></li>
    </ul>
</div>

导航控件 CSS

#NavigationControl {
    高度:23px;
    背景颜色:透明;
    位置:相对;
    z 指数:10000;
}

页面上所有内容的概述

<html>
  <头部>
       //链接到 SuperFish CSS & JS
       //如果缺少 JS,则链接到 Silverlight 下载
  </head>
  <正文>
    <div id="NavigationControl"></div>
    <div id="silverlightControlHost"></div>
  </正文>
</html>

链接到 Superfish JS 和 CSS

4

2 回答 2

2

为了能够在 Silverlight 应用程序上呈现 HTML 内容,您需要将 silverlight 插件配置为作为 Windowless 运行。

将以下参数添加到您的插件配置中

<param name="windowless" value="true" />

http://msdn.microsoft.com/en-us/library/cc838156(VS.95).aspx

在无窗口模式下,插件直接在浏览器窗口上呈现 Silverlight 内容,而不是在浏览器框架的子窗口中。因此,页面 HTML 可以覆盖 silverlight 内容。

注意:在无窗口模式下运行确实有一些性能影响,请阅读上面的链接了解更多详细信息。

这是一个可能也有帮助的例子

http://weblogs.asp.net/dwahlin/archive/2010/05/10/integrating-html-into-silverlight-applications.aspx

于 2011-04-27T19:12:29.880 回答
0

我知道你可以使用 Flash:

wmode="opaque"object元素上的属性。

不知道它是否也适用于 Silverlight

于 2011-04-18T21:18:19.347 回答