如何“停靠”Silverlight控件

时间:2008-12-03 21:02:20

标签: css silverlight

有没有办法将Silverlight控件“停靠”到浏览器窗口?例如,我想在页面顶部放置一个HTML标题,然后让Silverlight控件正好占据窗口的其余部分,每当窗口调整大小时,都会整齐地调整大小。

Visual Studio创建的默认页面使用100%宽度和高度的样式,以使Silverlight控件占用整个窗口。我可以轻松地修改该模板以按百分比分割页面(例如20%HTML标题和80%Silverlight控件)。但我真正想要的是标题高度为静态,Silverlight控件占据剩余窗口的100%。

2 个答案:

答案 0 :(得分:2)

您应该仍然可以使用CSS来执行此操作。只需将标题DIV设置为您想要的大小,然后Silverlight元素的容器DIV为100%/ 100%

答案 1 :(得分:2)

这是JavaScript的解决方案。首先,您创建此功能:

<script type="text/javascript">
    function resizeSLHost()
    {
        var docHeight = document.body.offsetHeight;
        var pluginHeight = docHeight - 130;
        var slplugin = document.getElementById("silverlightControlHost");
        slplugin.style.height = pluginHeight + "px";
    }
</script>

然后,在你的开场身份标签中,你说:

<body onload="resizeSLHost()" onresize="resizeSLHost()">

然后将标题div放在Silverlight主机div之前:

<div id="header" style="height:130px"></div>
<div id="silverlightControlHost">
    <object data="data:application/x-silverlight-2" type="application/x-silverlight-2" width="100%" height="100%">
        // the usual stuff here...
    </object>
    <iframe style='visibility:hidden;height:0;width:0;border:0px'></iframe>
</div>

当然,你在resizeSLHost()中从docHeight中减去的数字必须等于标题div的高度。

在IE 7和Firefox 3.0.4中,这对我有用。