我的asp.net页面中嵌入了一个silverlight mediaElement,如下所示:
<object id="SilverlightPlayer" data="data:application/x-silverlight,"
type="application/x-silverlight-2" width="753" height="468" >
<param name="source" value="ClientBin/VideoPlayer.xap"/>
<param name="EnableGPUAcceleration" value="true" />
<param name="OnResize" value="HandleResize" />
<param name="autoUpgrade" value="true" />
<param name="onLoad" value="pluginLoaded" />
<param name="windowless" value="true" />
<param name="background" value="transparent" />
<param name="initParams" id="SLInitParameters" />
</object>
我正在实现asp.net端的所有播放器控件并使用javascript桥调用SL方法。除了能够将silverlight播放器置于全屏模式之外,一切正常。 content.IsFullScreen = True;
我试过从javascript调用一个方法:
[ScriptableMember]
public void mediaFullScreen()
{
var content = Application.Current.Host.Content;
content.IsFullScreen = !content.IsFullScreen;
}
我在Silverlight代码中放了一个按钮,工作正常。所以,我有javascript调用上面的函数。然后我更改了代码调用SL全屏按钮上的click事件,但是,这也不起作用:
ButtonAutomationPeer peer = new ButtonAutomationPeer((Button)this.fullScreenButton);
IInvokeProvider ip = (IInvokeProvider)peer;
ip.Invoke();
我甚至在SL代码中连接了一个事件处理程序来处理标记上的click事件:
HtmlDocument htmlDoc = HtmlPage.Document;
HtmlElement htmlEle = htmlDoc.GetElementById("buttonFullScreen");
htmlEle.AttachEvent("onclick", new EventHandler(this.OnConvertClicked));
无论如何,我可以从我的asp.net代码中的标签进入SL进入全屏模式吗? (使用VS2010和SL4)
谢谢, 戴夫
答案 0 :(得分:1)
来自full screen support文档:
基于Silverlight的应用程序只能进入全屏模式 响应用户发起的操作。
和
限制启用全屏模式的操作可确保用户始终是全屏模式行为的发起者。
其他情况也是如此,例如启动打开的文件对话框。
如果您需要从JavaScript启动,您可能需要转向Silverlight全屏模式的另一种方法,即在浏览器中最大化它。