window phone开发之 UI全屏模式
当您将 IsFullScreen 属性设置为 true 时,基于 Silverlight 的应用程序即进入全屏模式。当该应用程序进入全屏模式时,会短暂显示下面的消息:“按 ESC 退出全屏模式”。此消息提醒用户应用程序现在处于全屏模式,并提供有关如何返回到嵌入模式的信息。
基于 Silverlight 的应用程序仅在响应用户启动的操作时才可以进入全屏模式。这意味着只能在用户输入事件处理程序中通过编程切换到全屏模式。例如,如果尝试在 Startup 事件处理程序中将 IsFullScreen 属性设置为 true,将忽略该属性设置。通过限制启用全屏模式的操作,可以确保用户始终是全屏模式行为的启动者。这将防止恶意应用程序伪造操作系统或其他程序的外观。
默认情况下,一次只能有一个应用程序可处于全屏模式。该应用程序通常将在用户切换到其他应用程序时退出全屏模式。
若要配置基于 Silverlight 的应用程序,使其无论是否活动均保持在全屏模式中,请将 FullScreenOptions 属性设置为 StaysFullScreenWhenUnfocused。这将支持用户在与其他应用程序交互时仍以全屏模式查看该应用程序。用户还可以在全屏模式下显示多个应用程序。
当某个应用程序虽不活动但保持全屏模式时,用户可以切换到其他应用程序。这包括最初的宿主浏览器或浏览器外窗口,其中嵌入的 Silverlight 插件将显示一个空区域,而该应用程序仍处于全屏模式下。
多数情况下,切换回全屏应用程序不会重新显示全屏消息。这意味着恶意应用程序又有机会来伪装其他应用程序。为帮助防止发生此情况,StaysFullScreenWhenUnfocused 设置会使应用程序在进入全屏模式之前显示征求用户同意的对话框。如果用户不同意,则应用程序将使用默认的全屏行为。
征求用户同意的对话框包含一个复选框,可供用户保存自己的首选项。用户可以在 "Microsoft Silverlight 配置"对话框中修改自己的首选项。
当基于 Silverlight 的应用程序处于全屏模式下时,会禁止大多数键盘事件。全屏模式期间此键盘输入限制是一个安全功能,可用于将用户输入意外信息的可能性降至最低。在全屏模式下,只允许通过以下键进行输入:
-
向上键
-
向下键
-
向左键
-
向右键
-
空格键
-
Tab
-
向上翻页
-
向下翻页
-
Home
-
End
-
Enter
Silverlight 在全屏模式下不支持对话框。除了征求用户同意的对话框之外,还不支持 OpenFileDialog 和 SaveFileDialog 类。在大多数情况下,在全屏模式下显示某个对话框将导致应用程序恢复嵌入模式。但是,为了避免在某些浏览器上出现问题,您应该在使用显示对话框的某项功能之前退出全屏模式。
全屏模式下不支持拖放或多点触控输入。如果您的应用程序使用这些功能,您应该在应用程序进入全屏模式时提供针对备选方式的用户指导。
受信任的应用程序的全屏模式
全屏消息、用户启动要求、键盘限制和对话框限制都不适用于受信任的应用程序。此外,在使用 StaysFullScreenWhenUnfocused 设置时,受信任的应用程序不显示征求用户同意的对话框。
由于 ESC 键对受信任的应用程序不具有内置影响,您可以将该键用于自己的目的。但是,这要求您实现某种备选方式,以便用户能够退出全屏模式。
有关更多信息,请参见受信任的应用程序。
全屏模式下应用程序的大小
当基于 Silverlight 的应用程序处于全屏模式下时,该应用程序的大小等于屏幕的当前分辨率。但是,在切换到全屏模式期间不影响该插件的 width 和 height 属性的值。若要确定全屏模式下该应用程序的实际大小,请使用 Content.ActualWidth 和 Content.ActualHeight 属性。在全屏模式下,将这些属性设置为屏幕的当前分辨率。
处于全屏模式下的应用程序在切换回嵌入模式时,该插件大小会还原为 width 和 height 属性的值。
有关 width 和 height 属性的更多信息,请参见 HTML 对象元素的属性值。
模式更改期间的性能特征
在嵌入模式与全屏模式之间切换,对应用程序内所含内容的性能所带来的影响非常小。这意味着,在大多数情况下音频或视频内容的播放是完全连续的。
全屏无窗口应用程序
Windowless 属性设置为 true 的 Silverlight 插件在全屏模式下显示时,始终会以完全不透明的方式绘制其背景色。但是,当该应用程序返回嵌入模式时,背景色会还原为其以前的不透明度值。
全屏模式下不支持无窗口 HTML 覆盖效果。但是,浏览器外应用程序可以使用 WebBrowser 控件在全屏模式下显示 HTML。
处于全屏模式的基于 Silverlight 的应用程序可以采用多种方式返回嵌入模式。离开全屏模式的最简单方法是由用户按 ESC 或使用以下击键组合之一:
-
Windows 用户可以按 Alt+F4。
-
Macintosh 用户可以按 COMMAND+ESC。
此外,如果全屏模式下的应用程序失去焦点,除非 StaysFullScreenWhenUnfocused 设置仍然有效,否则该应用程序将返回嵌入模式。当另一个应用程序通过用户操作获取焦点后,处于全屏模式的应用程序可能失去焦点。例如,使用 Alt+Tab 键组合在 Windows 中的任务之间切换会使当前应用程序失去焦点,并且使下一个应用程序获取焦点。
将 IsFullScreen 属性设置为 False
当您将 IsFullScreen 属性设置为 false 时,基于 Silverlight 的应用程序即退出全屏模式。当应用程序切换回嵌入模式时,该应用程序的大小会还原为插件 width 和 height 属性的值。
每当 IsFullScreen 属性更改时,就会发生 Content.FullScreenChanged 事件。您可以处理此事件以便在全屏模式下更改您的用户界面。