Silverlight中全屏处理

        Silverlight插件支持全屏模式,这个没什么好说的,只需要用设置IsFullScreen属性即可,问题在于全屏模式中,尽管屏幕变大了,但是页面中的控件并未相应的变大,下面是我在网上找到的解决这个问题的两种方式。

    第1种方式以图片为例,即应用图片的Stretch属性

       <Grid x:Name="LayoutRoot" Background="White">
        <Image  Stretch="UniformToFill" Source="/FullScreenModel;component/Koala.jpg" />
        <Button Content="全屏"  Name="button1"  Click="button1_Click" />
        </Grid>
 Click事件代码:
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen;
        }

   这里主要是将Image的Stretch属性设置为UniformToFill,这样图片就可以根据浏览器分辨率的变化而变化,这种方式在处理图片,视频等资源时比较方便,不过使用这种方式在插入模式下使用图片时,你需要进行一些处理,因为若你在Image中指定Width或Height,图片在全屏模式下会保持这个固定的大小。

      第2种方式则在后台进行处理,当处于全屏模式时,该页面上的控件也进行变化,以Button为例:

       1

                       2            

        这种方式或许更贴近我们平常接触的全屏,我们看看这部分的实现

        <Grid.RenderTransform>
            <ScaleTransform ScaleX="1" ScaleY="1" x:Name="RootLayoutScaleTransform">
            </ScaleTransform>
        </Grid.RenderTransform>
       <Button  Name="button1" Content="全屏" Height="30" Width="50" Click="button1_Click" Margin="70,170,72,100">         
        </Button>

         这里在UI中添加了一个名为RootLayoutScaleTransform的放大转换

        后台代码主要是根据插件的Resized,FullScreenChanged事件进行处理的,所以我们在构造函数中声明

           Application.Current.Host.Content.Resized += new EventHandler(Content_Resized);
            Application.Current.Host.Content.FullScreenChanged += new EventHandler(Content_Resized);

       完整的代码:

        private double width;
        private double height;
        public double uniformScaleAmount = 1;
        public MainPage()
        {
            InitializeComponent();
             height = this.Height;
             width = this.Width;
            Application.Current.Host.Content.Resized += new EventHandler(Content_Resized);
            Application.Current.Host.Content.FullScreenChanged += new EventHandler(Content_Resized);
        }
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen;
        }
        void Content_Resized(object sender, EventArgs e)
        {
            double currentWidth = Application.Current.Host.Content.ActualWidth;
            double currentHeight = Application.Current.Host.Content.ActualHeight;
            uniformScaleAmount = Math.Min((currentWidth / width), (currentHeight /height));
            RootLayoutScaleTransform.ScaleX = uniformScaleAmount;
            RootLayoutScaleTransform.ScaleY = uniformScaleAmount;
        } 

      页面初始化后我们先将当前插件的大小保存了下来,当单击Button发生全屏事件时,会进行相关事件的处理,这种方式我觉得处理的更为妥善一些,程序运行的时候,如果你的界面上什么都没有,需要设置UserControl的Width, Height属性。

      就看到这两种方式,有更好的方法请告诉我。

  

     代码下载:FullScreenModelDemo   VS2010+SL3

转载于:https://www.cnblogs.com/626498301/archive/2010/08/26/1808883.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495804.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mockito—参数匹配

mock方法时&#xff0c;总会因场景不同&#xff0c;调整参数的匹配情况。比如&#xff1a;某个参数是为了在数据库进行模糊查询的&#xff1b;或则精确匹配时&#xff0c;引用类型参数未实现equals方法。这时候就需要mock方法时&#xff0c;进行不同匹配。 1. 参数精确匹配 Ma…

人工智能的过去、现在和未来

来源&#xff1a; 人工智能和大数据 作者&#xff1a; 腾讯 AI Lab 主任 张潼在回答人工智能达到了什么程度这个问题之前&#xff0c;需先了解人工智能的概念是什么&#xff1f;人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;是指计算机像人一样拥有智…

Python3 函数注释: 参数 中 的 冒号 与 箭头

From&#xff1a;https://blog.csdn.net/liang19890820/article/details/74264380 简述 在 Python 3.x 中&#xff0c;增加了一个新特性 - 函数注释&#xff08;Function Annotations&#xff09;&#xff0c;顾名思义&#xff0c;可做为函数额外的注释来用。 函数注释是一个可…

软件生存周期文档系列 之 6.用户操作手册

6 用户操作手册 6.1 引言 6.1.1 编写目的 6.1.2 项目背景 6.1.3 参考资料&#xff08;包括项目计划任务书、合同或批文&#xff1b;项目开发计划&#xff1b;需求规格说明书&#xff1b;概要设计说明书&#xff1b;详细说明书&#xff1b;测试计划等&am…

Dom4j完整教程~DOM4J简介

DOM4J是 dom4j.org 出品的一个开源 XML 解析包。DOM4J应用于 Java 平台&#xff0c;采用了 Java 集合框架并完全支持 DOM&#xff0c;SAX 和 JAXP。 DOM4J 使用起来非常简单。只要你了解基本的 XML-DOM 模型&#xff0c;就能使用。 Dom&#xff1a;把整个文档作为一个对象。 DO…

除了芯片 我们还应关注哪些核心技术

来源&#xff1a;传感器技术&#xff08;公众号&#xff09;最近的“中兴封杀”事件&#xff0c;让国人深深领略了缺少核心技术给企业乃至行业和国家带来的巨痛。除了我们知道的芯片技术之外&#xff0c;还有哪些核心技术需要我们重点关注呢&#xff1f;超级计算终端 超级计算终…

Python PyInstaller 安装 和 使用教程( 打包生成 exe )

From&#xff1a;http://c.biancheng.net/view/2690.html Python zipapp打包教程&#xff1a;http://c.biancheng.net/view/2687.html 在创建了独立应用&#xff08;自包含该应用的依赖包&#xff09;之后&#xff0c;还可以使用 PyInstaller 将 Python 程序生成可直接运行的程…

Dom4j完整教程~XML文档简单操作

读取XML文档&#xff1a; 读写XML文档主要依赖于org.dom4j.io包&#xff0c;有DOMReader和SAXReader两种方式。因为利用了相同的接口&#xff0c;它们的调用方式是一样的。 public static Document load(String filename) { Document document null; try { SAXReader sax…

Yann LeCun:距离“真正的” AI,我们还缺什么?

来源&#xff1a; AI科技大本营&#xff08;ID&#xff1b;rgznai100&#xff09;GMIC Beijing 2018 大会第一天&#xff0c;首个演讲者是 Facebook 首席 AI 科学家 Yann LeCun。他讲述了关于深度学习的最新研究成果&#xff0c;同时也描述了深度学习的未来&#xff0c;以及机…

Python 使用 smtp ssl 模式 发送邮件与附件

参考 &#xff1a; 发送邮件简单入门 ( 以qq邮箱,163邮箱为例 ) &#xff1a;https://blog.csdn.net/qq_38661599/article/details/81013834 smtp ssl 模式 发送邮件 与 附件&#xff1a;https://www.cnblogs.com/SunshineKimi/p/10629342.html Python…

Unity.Interception System (2.0)

转载于:https://www.cnblogs.com/artech/archive/2010/08/27/1810010.html

PyQt5 快速开发 与 实战

From&#xff1a;https://blog.csdn.net/jia666666/category_9278208.html PyQt5 信号 与 槽 信号与槽的入门应用&#xff08;一&#xff09;&#xff1a;https://blog.csdn.net/jia666666/article/details/81774175 信号与槽的再细分&#xff08;二&#xff09;&#xff1a;ht…

Flex 流式布局 之 滚动条篇

Flex 流式布局 之 滚动条篇 flex 框架支持流式布局&#xff0c;什么是流式布局呢&#xff0c;就是在运行时对象的大小是未知的&#xff0c;它可能需要由他的内容(childs)或由它的容器来决定它的实际大小。flex 中有两种流式一种就是 百分比形式的(percentWidth)&#xff0c;还…

卷积神经网络为什么能称霸计算机视觉领域?

来源&#xff1a;图灵人工智能摘要&#xff1a;在机器视觉和其他很多问题上&#xff0c;卷积神经网络取得了当前最好的效果&#xff0c;它的成功促使我们思考一个问题&#xff0c;卷积神经网络为什么会这么有效&#xff1f;在本文中&#xff0c;将为大家分析卷积神经网络背后的…

Dom4j完整教程~Document对象相关

读取XML文件,获得document对象. SAXReader reader new SAXReader(); Document document reader.read(new File("input.xml")); 解析XML形式的文本,得到document对象. String text "<members></members>"; Document document Doc…

Python3.2+ 的 concurrent.futures 模块

concurrent.futures 官方文档&#xff1a;https://docs.python.org/3/library/concurrent.futures.html concurrent.futures: 线程池, 并发的处理任务&#xff1a;https://www.h3399.cn/201906/703751.html IO 密集型 vs 计算密集型&#xff1a; IO密集型&#xff1a;读取文件…

C# 判断一字符串是否为合法数字(正则表达式)

代码 ///<summary>///判断一个字符串是否为合法整数(不限制长度) ///</summary>///<param name"s">字符串</param>///<returns></returns>publicstaticboolIsInteger(strings) { stringpattern "…

关于现在人工智能预测的一些冷水

来源&#xff1a;人工智能和大数据 作者&#xff1a;田渊栋最近有关人工智能和深度学习的各种预测满天飞&#xff0c;作为圈内人&#xff0c;我来泼点冷水。我们常说科技树科技树&#xff0c;这个比喻是非常贴切的&#xff0c;现代科技的基础理论并不复杂&#xff0c;做个摘要…

Dom4j完整教程~节点相关

获取文档的根节点. Element rootElm document.getRootElement(); 取得某节点的单个子节点. Element memberElmroot.element("member");// "member"是节点名 取得节点的文字 String textmemberElm.getText(); String textroot.elementTe…

Windows10 下搭建汇编语言开发环境( 利用 DOSBOX 和 MASM32 )

Windows10下搭建汇编语言开发环境&#xff08;利用DOSBOX和MASM32&#xff09;&#xff1a;https://www.cnblogs.com/zyever/p/7919007.html 如何在win10 64位下搭载汇编环境&#xff08;包含汇编dosbox和masm文件&#xff09;&#xff1a;https://blog.csdn.net/xyisv/articl…