技巧和诀窍:用Silverlight支持全屏模式(2)
作者:Scott Guthrie 来源:Scott Guthrie博客中文版 发布时间:2007-09-23 12:37:00
简单的全屏模式代码解释
实现上面的例程的代码非常简单。
首先,我们可以打开和编辑应用的.XAML文件,然后往其中添加一个UI元素,我们将用它来触发全屏模式。在上面的例程里,我使用了一个<TextBlock>控件,我将它命名为"MyMessage"。下面是整个应用的XAML的所有内容:
下面的屏幕截图显示了上面.XAML文件的后台代码,包含了整个应用的所有代码:
在应用的Page_Loaded()事件处理器里,我接连了2个事件处理函数。
MyMessage_MouseLeftButtonDown,这个事件处理函数将会在用户点击我加进XAML文件中的TextBlock消息控件时执行。在这个事件处理函数里,我只是简单地根据当前是否已经在全屏模式,来把BrowserHost.IsFullScreen属性切换成true或false。
BrowserHost_FullScreenChange,这个事件处理函数会在Silverlight转换成全屏模式和浏览器模式时执行。它在模式转换发生时,提供了一个很好的地方来添加逻辑以更新UI。在上面的例程里,我改变了TextBlock控件上的文字。我也可以设置控件的大小或者将它们移动到屏幕的新位置上去。目前,Silverlight 1.1 Alpha还没有布局管理器支持,所以控件不会自动定位,除非你编写代码自己管理(不用担心,象桌面WPF版本一样的布局管理控件不久就会推出)。
除了IsFullScreen属性外,BrowserHost类还有许多非常有用的属性和事件:
ActualHeight和ActualWidth属性在你转换成全屏模式查询屏幕尺寸时尤其有用。你可以在页面上定位和扩缩你的UI控件时利用这些属性。
结语
在Silverlight应用中支持全屏模式非常容易,它能提供了了非常棒的,沉浸性用户体验。
想进一步了解Silverlight的话,请阅读我的Silverlight综合公告贴子以及访问www.silverlight.net社区网站。
想观看我使用.NET和Visual Studio Orcas从头打造Silverlight应用的示范的话,请观看这里的这个录像。
希望本文对你有所帮助


猜你喜欢
- Python编程中经常遇到一些莫名其妙的错误, 其实这不是语言本身的问题, 而是我们忽略了语言本身的一些特性导致的,今天就来看下使用Pyth
- 本文实例讲述了Django框架静态文件处理、中间件、上传文件操作。分享给大家供大家参考,具体如下:Django静态文件处理、中间件、上传文件
- 安装环境:CentOS7 64位,MySQL5.71、配置YUM源在MySQL官网中下载YUM源rpm安装包:http://dev.mysq
- 在平时的工作中,我们经常会遇到需要批量创建文件的情况,例如,汇总一个月中每天回复问题的文件等,这里,我们以如何使用当前日期时间创建文件为例:
- 写在前面很长一段时间内,我都在研究在线地图的开发者文档,百度地图和高德地图的开发者中心提供了丰富的在线地图服务,虽然有一定的权限限制,但不得
- python可以简单优美,也很有趣,下面是收集的例子:1.一句话开始一个http的文件服务器:$ python -m SimpleHTTPS
- 本文实例为大家分享了Python使用Pygame绘制时钟的具体代码,供大家参考,具体内容如下前提条件:需要安装pygame功能:1.初始化界
- 一、什么是凯撒密码“在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最
- 本文实例讲述了JS实现水平遍历和嵌套递归操作。分享给大家供大家参考,具体如下:程序中存在着一些有意思的逻辑,比如多层嵌套可以用递归遍历,比如
- 这篇日志完全是看了一篇日志后的启发,原文为: * 的eval和new Function。很少使用new Array的方式来定义数组,没想到ne
- 遇到mysql ERROR 1045 这个问题搞了很久,自己记下来。方法是百度的,亲测有效。ERROR 1045 (28000): Acce
- 由于HTTP协议是无状态协议,所以服务器与客户端通过http协议通讯时,服务器不能记录客户端的信息。为了解决这个问题,通过 Cookie 和
- 异常处理简介在我们写程序代码的时候,往往会因一个小问题让我们整个程序直接挂掉。异常处理对我们测试有什么好处,相信做过自动化的同学都知道我们的
- 某天,在需要抓取某个网页信息的时候,需要在header中增加一些信息,于是搜索了一下,如何在golang发起的http请求中设置header
- <? // 建立一个指向新COM组件的索引 $word = new C
- 本文实例讲述了Python实现生成随机数据插入mysql数据库的方法。分享给大家供大家参考,具体如下:运行结果:实现代码:import ra
- 要使用多个定界符拆分字符串:使用 re.split() 方法,例如 re.split(r',|-', my_str)。re.
- Python中列表(list)的实现其实是一个数组,当要查找某一个元素的时候时间复杂度是O(n),使用list.index()方法,但是随着
- 第一种方式: $(document).ready(function(){ $("#clickme").click(fun
- 错误日志安装时出现了如下错误:SQL Server 2005 安装错误码29503。产品: Microsoft SQL Server 200