0

auto我一直在使用嵌入在ASP.NET Web應用程序中的Silverlight 4應用程序。所述Silverlight控件的高度各不相同,並且在很多情況下,垂直地從屏幕底部流動。IE7中沒有滾動條用於溢出Silverlight控件

這對大多數瀏覽器(特別是IE 8,Chrome,Firefox)來說都沒有問題,因爲它們會在HTML文檔中添加垂直滾動條。但是,IE7不顯示這些滾動條,使得無法查看整個Silverlight控件。我怎麼有它嵌入

代碼片段:

... 
<div id="silverlightControlHost"> 
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" 
    height="100%" 
    width="100%"> 
    <param name="source" value="MyApp.xap" /> 
    <param name="onError" value="onSilverlightError" /> 
    <param name="background" value="white" /> 
    <param name="minRuntimeVersion" value="4.0.41108.0" /> 
    <param name="autoUpgrade" value="true" /> 
</object> 
... 

只有相關的CSS:

#silverlightControlHost 
{ 
    height: 100%; 
    text-align: center; 
} 

我嘗試添加一個 '溢出:汽車' 和保證金/填充樣式屬性(其顯示一個滾動條,但實際上並不實際滾動?),在<object>上設置靜態大小,但兩者都不起作用。請記住,即使頁面加載時間(Silverlight控件在不同高度的RootVisuals之間切換),此控件的高度也會有所不同。

IE7的任何大師都有一個想法如何繞過這個問題?謝謝。

+0

你能張貼你的CSS(如果有的話)? – Blender 2011-03-16 20:28:03

+0

爲有問題的元素添加了唯一的CSS引用;沒有什麼可看的。 – 2011-03-16 20:55:59

回答

2

戴夫,

有時似乎什麼有用的是添加以下樣式:

<style type="text/css"> 
html, body { 
    height: 100%; 
    overflow: auto; 
} 

body { 
    padding: 0; 
    margin: 0; 
} 

#silverlightControlHost { 
    height: 100%; 
    text-align:center; 
} 
</style> 

html, body的風格是最重要的位置。

UPDATE

什麼也可能有助於從內部調整的Silverlight Silverlight控件主機div。我找到了這個代碼示例,你可以將它附加到你的調整大小事件。

Dispatcher.BeginInvoke(() => 
{ 
    double height = this.RenderSize.Height; 
    double width = this.RenderSize.Width; 
    //silverlightControlHost is the div which hold silverlight object 
    HtmlPage.Document.GetElementById("silverlightControlHost").SetStyleAttribute("width", height.ToString() + "px"); 
    HtmlPage.Document.GetElementById("silverlightControlHost").SetStyleAttribute("height", width.ToString() + "px"); 
}); 

(至於Silverlight的論壇弗蘭克·蘭)

HTH

+0

挖掘我的CSS代碼,我已經在HTML&BODY元素上設置了所有這些屬性。 – 2011-03-16 21:20:46

+0

要快速嘗試,請在#silverlightControlHost樣式中添加以下內容:「display:block; position:absolute; height:auto; bottom:0; top:0; left:0; right:0;」。最後但並非最不重要的:檢查HTML頁面標題中定義的HTML標準...沒有正確的聲明可能會改變模式(所謂的「怪癖模式」),它改變了瀏覽器CSS的解釋。 – thmshd 2011-03-16 21:36:27

+0

不行:滾動條仍然丟失。 Doctype = <! - DOCTYPE html PUBLIC「 - // W3C // DTD XHTML 1。0 Transitional // EN「」http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd「 - > – 2011-03-17 16:06:15

0

我也有類似的問題,我解決它通過添加風格HTML,身體 - 最小寬度和高度元素。

這樣的:

html, body 
{ 
    height: 100%; 
    overflow: auto; 
    min-height:500px; 
    min-width:700px; 
} 

對我來說it's工作在Opera 12和IE 9