Silverlight 4 全屏

Silverlight 4 全屏,第1张

概述    这几天的网络大战,打的真热闹呀,可惜苦了我们这些网民,最苦的是我装的防御是360,聊天是QQ,弄的上QQ时不能上360,两个NC呀。一想就火大,还是看我的Silverlight吧。     Silverlight 4 全屏很简单就一行代码:Application.Current.Host.Content.IsFullScreen=true,进入全屏后可按Esc退出全屏模式,也可以放过按钮如

    这几天的网络大战,打的真热闹呀,可惜苦了我们这些网民,最苦的是我装的防御是360,聊天是QQ,弄的上QQ时不能上360,两个NC呀。一想就火大,还是看我的Silverlight吧。

    Silverlight 4 全屏很简单就一行代码:Application.Current.Host.Content.IsFullScreen=true,进入全屏后可按Esc退出全屏模式,也可以放过按钮如:

     <button  Content="全屏" Height="23" HorizontalAlignment="left" margin="168,195,0" name="button1"   

      VerticalAlignment="top" WIDth="75" Click="button1_Click"/>

  按钮事件:

      private voID button1_Click(object sender,RoutedEventArgs e)
        {
               App.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen;
        }

      app和application是一个意思

  

    这样就可以实习点击下按钮就进入全屏,再点下就退出全屏。不过Silverlight安全问题做的有点过分了,搞的全屏模式下键盘无法法输入。后来看了下资料原来Silverlight运行在安全沙盒中,全屏后只能用有限的几个键:UP,DOWN,left,RIGHT,SPACEbar,TAB,PAGE UP,PAGE DOWN,HOME,END,ENTER。 这几个键全是为播放器准备的。

 

    要突破Silverlight的安全限制,Silverlight4.0提供了解决方案:OUt-of-browser支持。这个功能只需要配置即可,配置的步骤如下 :

"解决方案资源浏览器"@H_404_36@中,选择要为其启用浏览器外支持的 Silverlight 项目。

"项目"@H_404_36@菜单上,选择项目名称@H_404_36@"属性"@H_404_36@。

"Silverlight"@H_404_36@选项卡上,选择"允许在浏览器外运行应用程序"@H_404_36@。

单击"浏览器外设置"@H_404_36@。

随即出现"Out-of-browser Settings"@H_404_36@对话框。

为指示的字段指定值,然后单击"确定"@H_404_36@。window Title和Shortcut name可选填。@H_404_36@ 

    键盘不能输入的问题终于得解。有了Out-of-browser支持,Silverlight的全屏就更完善了。Out-of-browser支持还拓展了silverlight的使用空间,让silverlight脱离了仅仅是web应用的层面,也可以做桌面程序了。

    

     在全屏下还要注意一点,比如界面上放一张图片和一个按钮,

 <Image x:name="images"   Source="image/s.jpg"></Image>

<button  Content="全屏" Height="23" HorizontalAlignment="left" margin="168,0" name="button1"   

      VerticalAlignment="top" WIDth="75" Click="button1_Click"/>

 

     生成网页,如下:

  

   点全屏:

  

   按钮位置就变动了,这不是我们想要的效果。

   要解决这个问题很简单,可以设置Image控件的stretch属性,将它设置为fill,再看下效果:

  

  

  是解决了位置的问题了,又出现新的问题,图片相对变大了而按钮没有,感觉不怎么协调。

  可以用个小方法,让它按比例变大,设个方法,当按全屏时用这个方法,让控件相对变大就行了。

   wIDth:控件的宽   height:控件的高

  System.windows.browser.HTMLPage.Window.Eval("screen.height");  获取你电脑的分辨率的高

  System.windows.browser.HTMLPage.Window.Eval("screen.wIDth"); 获取你电脑的分辨率的宽

  Application.Current.Host.Content.ActualHeight;获取你当前窗体的高

  Application.Current.Host.Content.ActualWIDth;获取你当前窗体的宽         这里的窗体指浏览器的内容窗体

  放大的控件的宽=wIDth*电脑的宽/窗体的宽         

  高同上                                                              偶比较懒

  有了这些值,就可以让你的控件随比例变化了。例子就自己动手吧!嘿嘿。

   

 顺便附上stretch的属性值说明:  

None@H_404_36@ 内容保持其原始大小。@H_404_36@

Fill@H_404_36@ 调整内容的大小以填充目标尺寸。不保留纵横比。@H_404_36@

Uniform@H_404_36@ 在保留内容原有纵横比的同时调整内容的大小,以适合目标尺寸。@H_404_36@

UniformToFill@H_404_36@ 在保留内容原有纵横比的同时调整内容的大小,以填充目标尺寸。如果目标矩形的纵横比不同于源矩形的纵横比,则对源内容进行剪裁以适合目标尺寸。@H_404_36@

尽管不直观,但在某些情况下,可以通过将 Stretch@H_404_36@@H_404_36@ 属性设置为 Fill@H_404_36@@H_404_36@ 而非包括 None@H_404_36@@H_404_36@ 在内的其他值而获得更好的性能。使用 Stretch = Fill@H_404_36@@H_404_36@ 时,不会有添加额外边缘的潜在剪辑发生。除 Fill@H_404_36@@H_404_36@ 之外的所有其他类型的拉伸都需要计算布局(例如计算居中)。除非要呈现许多图像,否则,您可能不会注意到差异。

总结

以上是内存溢出为你收集整理的Silverlight 4 全屏全部内容,希望文章能够帮你解决Silverlight 4 全屏所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1076390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存