window phone开发之 UI全屏模式

本文介绍Silverlight应用程序如何进入及退出全屏模式。用户可通过特定按键启动全屏,并且应用程序只有在用户操作下才能进入全屏。全屏模式下,键盘输入受限,支持基本导航键。同时介绍了如何配置应用程序保持全屏状态,即使失去焦点也不退出全屏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当您将IsFullScreen属性设置为true时,基于 Silverlight 的应用程序即进入全屏模式。当该应用程序进入全屏模式时,会短暂显示下面的消息:“按 ESC 退出全屏模式”。此消息提醒用户应用程序现在处于全屏模式,并提供有关如何返回到嵌入模式的信息。

全屏模式消息

按 ESC 退出全屏模式。

Page rootPage = new Page(); private void Application_Startup(object sender, StartupEventArgs e) { this.RootVisual = rootPage; rootPage.LayoutRoot.MouseLeftButtonDown += delegate(Object s, MouseButtonEventArgs args) { this.Host.Content.IsFullScreen = !this.Host.Content.IsFullScreen; }; this.Host.Content.FullScreenChanged += new EventHandler(DisplaySizeInformation); this.Host.Content.Resized += new EventHandler(DisplaySizeInformation); } private void DisplaySizeInformation(Object sender, EventArgs e) { String message = String.Format( "ActualWidth={0}, ActualHeight={1}", this.Host.Content.ActualWidth, this.Host.Content.ActualHeight); rootPage.LayoutRoot.Children.Clear(); rootPage.LayoutRoot.Children.Add( new TextBlock { Text = message }); }
基于 Silverlight 的应用程序仅在响应用户启动的操作时才可以进入全屏模式。这意味着只能在用户输入事件处理程序中通过编程切换到全屏模式。例如,如果尝试在Startup事件处理程序中将IsFullScreen属性设置为true,将忽略该属性设置。通过限制启用全屏模式的操作,可以确保用户始终是全屏模式行为的启动者。这将防止恶意应用程序伪造操作系统或其他程序的外观。

默认情况下,一次只能有一个应用程序可处于全屏模式。该应用程序通常将在用户切换到其他应用程序时退出全屏模式。

若要配置基于 Silverlight 的应用程序,使其无论是否活动均保持在全屏模式中,请将FullScreenOptions属性设置为StaysFullScreenWhenUnfocused。这将支持用户在与其他应用程序交互时仍以全屏模式查看该应用程序。用户还可以在全屏模式下显示多个应用程序。

当某个应用程序虽不活动但保持全屏模式时,用户可以切换到其他应用程序。这包括最初的宿主浏览器或浏览器外窗口,其中嵌入的 Silverlight 插件将显示一个空区域,而该应用程序仍处于全屏模式下。

多数情况下,切换回全屏应用程序不会重新显示全屏消息。这意味着恶意应用程序又有机会来伪装其他应用程序。为帮助防止发生此情况,StaysFullScreenWhenUnfocused设置会使应用程序在进入全屏模式之前显示征求用户同意的对话框。如果用户不同意,则应用程序将使用默认的全屏行为。

征求用户同意的对话框包含一个复选框,可供用户保存自己的首选项。用户可以在"Microsoft Silverlight 配置"对话框中修改自己的首选项。

当基于 Silverlight 的应用程序处于全屏模式下时,会禁止大多数键盘事件。全屏模式期间此键盘输入限制是一个安全功能,可用于将用户输入意外信息的可能性降至最低。在全屏模式下,只允许通过以下键进行输入:

  • 向上键

  • 向下键

  • 向左键

  • 向右键

  • 空格键

  • Tab

  • 向上翻页

  • 向下翻页

  • Home

  • End

  • Enter

Silverlight 在全屏模式下不支持对话框。除了征求用户同意的对话框之外,还不支持OpenFileDialogSaveFileDialog类。在大多数情况下,在全屏模式下显示某个对话框将导致应用程序恢复嵌入模式。但是,为了避免在某些浏览器上出现问题,您应该在使用显示对话框的某项功能之前退出全屏模式。

全屏模式下不支持拖放或多点触控输入。如果您的应用程序使用这些功能,您应该在应用程序进入全屏模式时提供针对备选方式的用户指导。

受信任的应用程序的全屏模式

全屏消息、用户启动要求、键盘限制和对话框限制都不适用于受信任的应用程序。此外,在使用StaysFullScreenWhenUnfocused设置时,受信任的应用程序不显示征求用户同意的对话框。

由于 ESC 键对受信任的应用程序不具有内置影响,您可以将该键用于自己的目的。但是,这要求您实现某种备选方式,以便用户能够退出全屏模式。

有关更多信息,请参见受信任的应用程序

全屏模式下应用程序的大小

当基于 Silverlight 的应用程序处于全屏模式下时,该应用程序的大小等于屏幕的当前分辨率。但是,在切换到全屏模式期间不影响该插件的widthheight属性的值。若要确定全屏模式下该应用程序的实际大小,请使用Content.ActualWidthContent.ActualHeight属性。在全屏模式下,将这些属性设置为屏幕的当前分辨率。

处于全屏模式下的应用程序在切换回嵌入模式时,该插件大小会还原为widthheight属性的值。

有关widthheight属性的更多信息,请参见HTML 对象元素的属性值

模式更改期间的性能特征

在嵌入模式与全屏模式之间切换,对应用程序内所含内容的性能所带来的影响非常小。这意味着,在大多数情况下音频或视频内容的播放是完全连续的。


全屏无窗口应用程序

Windowless属性设置为true的 Silverlight 插件在全屏模式下显示时,始终会以完全不透明的方式绘制其背景色。但是,当该应用程序返回嵌入模式时,背景色会还原为其以前的不透明度值。

全屏模式下不支持无窗口 HTML 覆盖效果。但是,浏览器外应用程序可以使用WebBrowser控件在全屏模式下显示 HTML。

处于全屏模式的基于 Silverlight 的应用程序可以采用多种方式返回嵌入模式。离开全屏模式的最简单方法是由用户按 ESC 或使用以下击键组合之一:

  • Windows 用户可以按 Alt+F4。

  • Macintosh 用户可以按 COMMAND+ESC。

此外,如果全屏模式下的应用程序失去焦点,除非StaysFullScreenWhenUnfocused设置仍然有效,否则该应用程序将返回嵌入模式。当另一个应用程序通过用户操作获取焦点后,处于全屏模式的应用程序可能失去焦点。例如,使用 Alt+Tab 键组合在 Windows 中的任务之间切换会使当前应用程序失去焦点,并且使下一个应用程序获取焦点。

将 IsFullScreen 属性设置为 False

当您将IsFullScreen属性设置为false时,基于 Silverlight 的应用程序即退出全屏模式。当应用程序切换回嵌入模式时,该应用程序的大小会还原为插件widthheight属性的值。

每当IsFullScreen属性更改时,就会发生Content.FullScreenChanged事件。您可以处理此事件以便在全屏模式下更改您的用户界面。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值