首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows 8中处理方向

在Windows 8中处理方向
EN

Stack Overflow用户
提问于 2012-04-21 22:56:07
回答 3查看 3K关注 0票数 5

A想创建一个Metro风格的Windows8应用程序,它不会在Portrait模式下旋转所有内容的根Grid。我想在CodeVisual States中处理方向,但现在当我旋转设备时,所有内容都会自动旋转并填充新的宽度和高度。

如何禁用此旋转行为,即禁用Portrait方向,但仍然能够获取有关方向更改的事件?

而且,Windows.Graphics.Display.DisplayProperties.AutoRotationPreferences似乎不起作用

EN

回答 3

Stack Overflow用户

发布于 2012-07-21 15:51:47

双击您的metro应用程序项目中的"Package.appxmanifest“文件,您应该会看到应用程序的配置。在“应用程序UI”页面中,您可以在中间找到“支持的旋转”。你可以勾选你支持的模式,而不勾选“肖像”模式。然后你的应用程序将不再接收任何“肖像”模式事件。

如果您编写自己的appx manifiest,您可以在节下面添加以下代码块,如下所示

代码语言:javascript
复制
    <InitialRotationPreference>
      <Rotation Preference="landscape" />
      <Rotation Preference="portraitFlipped" />
      <Rotation Preference="landscapeFlipped" />
    </InitialRotationPreference>
票数 3
EN

Stack Overflow用户

发布于 2012-04-22 06:02:35

当Windows显示你处于纵向模式时,向你的根元素添加一个rotatetransform,它会对此进行计数并保持呈现为纵向的状态

票数 0
EN

Stack Overflow用户

发布于 2012-07-22 15:45:57

抱歉,我错过了你的主要问题。我不认为你可以在肖像模式事件之后改变根元素的“旋转”。因为它实际上并没有相对于屏幕旋转,而是改变了屏幕大小。

然而,我猜你仍然希望用户在纵向模式事件之后以横向模式查看你的应用程序。你可以对抗感知到的旋转。您可以将业务逻辑放在另一个没有预定义大小的用户控件中。将此用户控件放在根页面中。当你收到纵向模式事件时,你将页面高度分配给用户控件高度,页面宽度分配给用户控件宽度,给用户控件一个90度的渲染变换,渲染变换中心x= ActualWidth *0.707/ ActualHeight,y=0.5,那么用户控件应该只与横向模式的位置对齐。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10260042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档