嵌入silverlight应用程序时的白色背景

时间:2010-02-07 01:24:18

标签: silverlight

我目前有一个主要在表达式混合中设计的silverlight应用程序,使用带有阴影效果的边框环绕圆角矩形控件。当我将此应用程序嵌入页面时,对象周围有一个白色背景。我想让这个背景透明,以便页面背景颜色(在css中定义)显示,或者以某种方式将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> 

我试过搞乱无窗口参数,但没有成功。谢谢你的帮助

2 个答案:

答案 0 :(得分:2)

解决方案: 加入

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

答案 1 :(得分:1)

  

“我想让这个背景透明,所以页面背景颜色(在css中定义)通过”

显示

不,你没有。

简答:只需将Silverlight页面的根元素的背景更改为淡蓝色或其他任何内容。

更长的答案:可以使用WindowsLess = True将浏览器内容与Silverlight内容交织在一起。
http://msdn.microsoft.com/en-us/library/cc838156(VS.95).aspx

长答案: WindowsLess = True从性能角度来看很糟糕,还有许多其他限制,所以不要使用它。
Limitations of Windowless mode for Silverlight

让我们来做浏览器插件概述101:
1)初始化属于插件“Foo”的对象标签 2)浏览器加载插件“Foo”
3)浏览器将页面上的矩形(X1,Y1,X2,Y2)委托给Foo插件。

将浏览器中的内容与插件交织的唯一方法是使用混合模式渲染。这基本上是这样的:
1)浏览器呈现Rect(X1,Y1,X2,Y2)并将其发送到Foo插件 2)Foo插件在渲染中的每个帧中交织步骤(1)的结果。

当您处于非交织模式时,步骤(1)不会发生。这也是默认值。

因此,通过添加交织,您将在Silverlight中为每个帧渲染添加更多步骤。 由于性能原因,这是非常糟糕的。

底线:您要求的是交织内容,Silverlight中的内容由WindowsLess = True参数设置,但会导致性能问题和其他限制。 由于您的场景非常简单,我只需将Silverlight背景设置为适当的颜色即可。