有没有办法将Silverlight控件“停靠”到浏览器窗口?例如,我想在页面顶部放置一个HTML标题,然后让Silverlight控件正好占据窗口的其余部分,每当窗口调整大小时,都会整齐地调整大小。
Visual Studio创建的默认页面使用100%宽度和高度的样式,以使Silverlight控件占用整个窗口。我可以轻松地修改该模板以按百分比分割页面(例如20%HTML标题和80%Silverlight控件)。但我真正想要的是标题高度为静态,Silverlight控件占据剩余窗口的100%。
答案 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中,这对我有用。