用于 Windows 8 的 InitialRotationPreference (包架构)

描述应用希望为获得最佳用户体验而显示的方向。 在可以旋转的设备上(如平板电脑),将不会为此处未指定的方向重绘应用。 例如,如果应用仅指定横向和 LandscapeFlipped 方向,并且设备旋转到纵向方向,则应用将不会旋转。

请注意,在无法旋转的设备上,应用程序可能会显示在该设备的默认方向上,并且将忽略应用程序的首选方向。 但是,在激活旋转锁定的设备上,应用的首选旋转仍会生效。

当启动应用程序的新会话时,这些方向首选项选项适用于 初始屏幕 和应用 UI。 可在运行时通过 displayproperties.autorotationpreferences 属性更改首选项。

元素层次结构

<包>
<应用程序>
<应用程序>
<VisualElements>
<InitialRotationPreference>

语法

<InitialRotationPreference>

  <!-- Child elements -->
  Rotation{1,4}

</InitialRotationPreference>

{} 特定发生范围

特性和元素

特性

无。

子元素

子元素 说明
旋转

指定应用将在其中显示的单一旋转方向。

 

父元素

父元素 说明
VisualElements

介绍 UWP 应用的视觉对象:其默认磁贴、徽标图像、文本和背景色、初始屏幕方向、初始屏幕和锁屏磁贴外观。

 

备注

此元素是应用程序清单文件 () 的一部分。 在 Microsoft Visual Studio 清单编辑器中,此设置可在 "应用程序 UI " 选项卡下找到 "支持的初始旋转"。 默认情况下,未选择任何选项。 这意味着所有旋转方向都受支持。 选择任何旋转或全部旋转都不会产生相同的结果。

由于你的应用可在不同的设备类型(台式计算机、平板电脑、便携式计算机或手机)上运行,因此你不能在应用启动时保证设备的方向提前了解,也不能在应用处于活动状态时对设备进行旋转。 因此,建议你开发应用程序,使其能够以任意方向显示。 也就是说,你的应用程序可以使用此元素来要求 Windows 将应用程序的显示范围限制为理想的旋转。 不过,Windows 无法始终服从该请求。 由于并非所有设备都可以旋转或检测旋转,因此 Windows 无法始终遵循方向首选项。 例如,如果你说明应用程序应以纵向显示,但应用是在标准的面向横向的桌面监视器或电视上运行的,则会忽略首选项,因为在其侧面显示应用将是一种不太好的用户体验。 出于此原因,你应考虑支持所有方向,使应用无需考虑设备旋转。

注意 因为在这段时间内,桌面 Pc 和笔记本电脑仍然会运行你的应用程序可能会在其上运行的统计主流设备,并且由于这些设备几乎都是以横向方向固定的,不能检测到旋转,因此应用程序必须至少支持横向旋转。 但是,在必须支持时,无需将横向声明为首选旋转。

 

此元素包含最多4个 旋转 元素,其中每个元素都指定了应用首选查看的方向。 如果不包含 旋转 元素,则其效果与包含全部四个元素相同。

下面的示例演示将在横向和 LandscapeFlipped 中显示的应用,但不会为纵向或 PortraitFlipped 中的设备更改其方向。

                        
<InitialRotationPreference>
    <Rotation Preference="landscape"/>
    <Rotation Preference="landscapeFlipped"/>
</InitialRotationPreference>
                    

应用最初启动时,Windows 收到其旋转首选项。 这些首选项保留在终止应用之前,但有一个重要的例外:如果调用Windows。DisplayProperties. Displayproperties.autorotationpreferences更改这些首选项。 该 API 用于通知 Windows 应用的旋转首选项更改,随时可以调用。 请注意,此 API 调用不会影响应用程序清单文件中的 InitialRotationPreference 元素的内容,而是在清单编辑器中进行设置。 因此,当你重新启动应用时,它将采用最初在应用清单中指定的旋转首选项。

例如,假设某个游戏应用是在横向观看的,但该应用的某个页面显示了更高的可见地图。 以下一系列事件可能会在支持旋转的设备上发生。 在这里,熟悉 应用生命周期 术语将非常有用。

  1. 开发人员在清单编辑器中为应用指定了横向和/或 LandscapeFlipped 的旋转首选项。
  2. 游戏已安装并已启动。 清单编辑器中指定的首选项适用,并且游戏不会旋转到纵向。
  3. 游戏检测到用户正在访问该地图。 它会调用displayproperties.autorotationpreferences ,告诉 Windows 将应用的旋转首选项更改为纵向和/或 PortraitFlipped。
  4. Windows 将应用旋转到新的首选方向。
  5. 用户切换到另一个应用以检查其邮件。
  6. 用户切换回游戏应用程序,以从中断位置继续。 Windows 知道,应用的最后一个规定首选项为纵向,并使应用在该方向上出现在屏幕上。 请注意,由于当前会话仍处于活动状态,因此它未引用 InitialRotationPreference 设置。
  7. 游戏检测到用户正在关闭 "映射" 页。 它会调用 displayproperties.autorotationpreferences ,将其旋转首选项改回其原始的横向设置以继续游戏。
  8. 用户完成游戏后,应用会在用户离开一段时间后挂起。
  9. 用户继续运行其他游戏。 由于该应用尚未变, Displayproperties.autorotationpreferences API 声明的最后一个首选项仍适用。
  10. ) (终止游戏。
  11. 游戏已重新启动。 由于它再次从初始启动开始, InitialRotationPreference 设置再次应用。

需要注意的要点是,一旦你调用了 displayproperties.autorotationpreferences,你就可以通过该 API 处理旋转首选项,直到游戏终止 (仅) 暂停。

当应用旋转时,Windows 随其旋转。 如果纵向关闭应用,"开始" 屏幕会显示为 "纵向"。 如果应用已为不同于设备当前显示的旋转指定了旋转首选项,则在显示应用程序的初始屏幕时,系统将会旋转。 直到系统旋转完成后,才会显示主应用 UI。

请参阅

VisualElements

快速入门:使用 Visual Studio 清单编辑器创建默认磁贴

Windows。DisplayProperties. Displayproperties.autorotationpreferences

要求

Namespace http://schemas.microsoft.com/appx/2010/manifest