首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过javascript实现全屏Silverlight

通过javascript实现全屏Silverlight
EN

Stack Overflow用户
提问于 2012-04-23 05:52:31
回答 1查看 650关注 0票数 0

好的,这就是问题所在。我有一个基本的网站,其中有按钮。这些按钮是通过javascript运行的,然后代码进入C#,然后它用Silverlight gantt控件做各种事情。

例如,如果我想放大甘特图控件,我会这样做:

代码语言:javascript
复制
<button id="zoomIn" onclick="SlZoomIn()">Zoom In</button>

然后在javascript中:

代码语言:javascript
复制
function SlZoomIn() {
    var control = document.getElementById("SilverlightPlugIn");
    control.Content.SilverPlan.JsZoomIn();
}

然后在C#中:

代码语言:javascript
复制
[ScriptableMember]
        public void JsZoomIn()
        {

            try
            {
                gantt.ZoomBySteps(1);
            }
            catch (Exception e)
            {
                MessageBox.Show("Zoom In does not work.");
            }
        }

这一切都很好,但是当我想用gantt处理需要事件的事情时,这是一个问题。例如,如果我想打印或全屏显示我的甘特图控件。我该怎么做呢?

在C#中,这样做的代码是:

代码语言:javascript
复制
private void fullScreen(object sender, RoutedEventArgs e)
        {
            Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen;
        }

但是我必须在javascript中做什么才能触发这个方法呢?当用户全屏点击按钮时?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-23 19:36:47

与前面的示例相比,从JavaScript调用这段代码没有什么不同,只是Silverlight插件对几个方面施加了安全限制,包括全屏模式、打印和文件对话框。这意味着这些操作必须由用户单击或键入某些内容来启动。解释了here at MSDN

因此,您不能在JavaScript中做到这一点,即使当用户按下Silverlight插件之外的按钮时--用户必须单击Silverlight插件内的某个按钮,例如引发事件的按钮,您可以在C#代码中处理该事件,然后直接执行操作。

在全屏的情况下,您会发现如果您将HTML/JavaScript内容与Silverlight混合在一起,Silverlight全屏很可能无法执行您想要的操作- Silverlight内容将是全屏的,并且HTML内容将不可见。你也不能使用键盘输入(主要是)。我建议在HTML页面中调整Silverlight对象的大小(可以结合最大化浏览器窗口)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10272439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档