我有一个全屏的 Silverlight 应用程序 (VS2010/C#)。
我还有一个位于 Silverlight 应用程序之上的 html 控件。
当浏览器窗口最大化时,位置是正确的。但是,当我将窗口恢复到较小的尺寸时,我会得到 silverlight 应用程序的滚动条(如预期的那样)。当我向下滚动时,我的 html 不会滚动并且相对于其窗口位置保持浮动。我希望 html 与 silverlight 应用程序一起滚动。如何才能做到这一点?
出于业务流程的原因,我无法将 html 放入 silverlight 应用程序中。
这是我的样式表
<style type="text/css">
html, body
{
height: 100%;
overflow: auto;
}
body
{
padding: 0;
margin: 0;
}
#silverlightControlHost
{
height: 100%;
text-align: center;
position: absolute;
width: 100%;
left: 0px;
top: 0px;
}
#contentDiv
{
position: absolute;
top: 15px;
right: 30px;
display: inline;
z-index: 20000;
}
</style>
这是我的html代码
<form id="form1" runat="server" style="height:100%">
<div runat="server" id="contentDiv">
--HTML CONTROLS
</div>
<div id="silverlightControlHost">
<object id="silverlightControl" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="windowless" value="true"/>
<param name="enablehtmlaccess" value="true" />
<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://www.microsoft.com/GETSILVERLIGHT" 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>
</form>
预先感谢您在此提供的任何帮助。
我觉得出现的滚动条属于 silverlight 应用程序,这就是为什么滚动 html 内容时似乎浮动,但我一直无法证实这一理论。
~~~编辑~~~
已确认滚动条属于 Silverlight 实例。为了确认这一点,我通过在 CSS 中设置一个大的“LEFT”和“TOP”属性将我的 html 控件位置设置为最右边和最底部。
此时,浏览器和 Silverlight 应用程序在调整大小时都会出现滚动条。浏览器和 silverlight 应用程序的滚动条是不同的样式。
重置 LEFT 和 TOP 属性并重现原始问题后,出现的滚动条与 Silverlight 应用程序具有相同的样式,而不是窗口。因此,所有滚动都发生在 Silverlight 应用程序本身上。
向前推进的解决方案可能是打破业务流程并将 html 嵌入到 Silverlight 中。如果有人能想出一种不同的方法来实现这一点,将不胜感激。