2008-12-03 26 views
1

有什麼辦法可以將Silverlight控件「停靠」到瀏覽器窗口嗎?例如,我想在頁面頂部有一個HTML標頭,然後讓Silverlight控件正好佔據窗口的其餘部分,每當窗口調整大小時都整齊地調整大小。如何「停靠」一個Silverlight控件

Visual Studio創建的默認頁面使用100%寬度和高度的樣式,以使Silverlight控件佔據整個窗口。我可以很容易地修改該模板以按百分比分割頁面(例如20%的HTML頁眉和80%的Silverlight控件)。但我真正想要的是標題高度是靜態的,Silverlight控件佔用了剩餘窗口的100%。

回答

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()"> 

你Silverlight的主機格之前把你的頭股利的權利:

<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中適用於我。

2

你應該仍然可以使用你的CSS來做到這一點。只需將您的標題DIV設置爲所需大小,然後將Silverlight元素的容器DIV設爲100%/ 100%

+0

我試過了,但100%高度似乎意味着包含元素的高度的100%,而不是包含元素的高度減去標題div的100%。所以最終的結果是一個垂直滾動條,因爲Silverlight控件太大,正好是標題div的高度。 – 2008-12-03 21:58:53

相關問題