2010-02-07 49 views
1

我目前有一個Silverlight應用程序,主要用於表達式混合,使用帶陰影效果的邊框包圍圓角矩形控件。當我將此應用程序嵌入到頁面中時,對象周圍會出現白色背景。我想讓這個背景變得透明,這樣頁面背景顏色(在css中定義)就會顯示出來,或者以某種方式改變Silverlight應用的藍色背景而不是白色。嵌入silverlight應用程序時的白色背景

我目前問題的屏幕截圖是:http://img694.imageshack.us/img694/8132/problemz.jpg

這裏是我使用嵌入應用到頁面的代碼:

<object width="750px" height="480px" data="data:application/x-silverlight-2," type="application/x-silverlight-2"> 
    <param name="source" value="/ClientBin/Debug/my.xap" /> 
    <param name="windowless" value="true" /> 
</object> 

我曾嘗試與窗戶的參數亂搞但沒有成功。感謝您的幫助

+0

+1一個合理的問題。爲什麼有人會認爲適合這個簡單明瞭的誠實問題超越了我? – AnthonyWJones 2010-02-07 19:27:08

回答

2

解決方案: 添加

<param name="background" value="transparent" /> 
1

「我想使這個背景是透明的,因此頁面背景顏色(CSS定義)顯示了通過」

無,你沒有。

簡短回答:只需將Silverlight頁面的根元素背景更改爲淡藍色或其他任何內容即可。

較長答案:使用WindowsLess = True可以將瀏覽器內容與Silverlight內容交織在一起。
http://msdn.microsoft.com/en-us/library/cc838156(VS.95).aspx

龍答:從性能的角度 WindowsLess =真吸,有許多其他的限制,所以不使用它。
Limitations of Windowless mode for Silverlight

讓我們做瀏覽器插件概覽101:
1)一個對象標籤初始化屬於插件「富」
2)瀏覽器加載插件「富」
3)瀏覽器的代表繪製矩形(X1,Y1,X2,Y2)到Foo插件。

將內容從瀏覽器與插件進行交織的唯一方法是使用混合模式呈現。其實質上是這樣工作的:
1)瀏覽器渲染矩形(X1,Y1,X2,Y2)並將其發送到Foo插件。
2)Foo插件在渲染的每一幀中交錯步驟(1)的結果。 (1)當您處於非交織模式時發生。這也是默認設置。

因此,通過添加交織,您將在Silverlight中爲每個幀渲染添加更多步驟。 由於性能原因,這是嚴重不良的。

底線:您要求的是交織內容,它在Silverlight中由WindowsLess = True參數設置,但會導致性能問題和其他限制。 由於您的場景足夠簡單,我只需將Silverlight背景設置爲適當的顏色即可。