簡體   English   中英

在Windows 8中處理方向

[英]Handle orientations in Windows 8

想要創建一個Metro Style Windows 8應用程序,該應用程序不會在Portrait模式下旋轉所有內容的根Grid 我想在CodeVisual States處理方向,但現在當我旋轉設備時,所有內容都會自動旋轉並填充新的寬度和高度。

如何禁用此旋轉行為,即禁用Portrait方向,但仍能夠獲取有關方向更改的事件?

此外, Windows.Graphics.Display.DisplayProperties.AutoRotationPreferences似乎不起作用

雙擊metro應用程序項目中的“Package.appxmanifest”文件,您應該會看到應用程序的配置。 在“應用程序UI”頁面中,您可以在中間找到“支持的旋轉”。 您可以檢查支持的模式,並取消選中“縱向”模式。 然后你的應用程序將不再接收任何“肖像”模式事件。

如果你編寫自己的appx最明顯,你可以添加以下塊,如下所示

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

當Windows表示您處於縱向模式時,請向您的根元素添加一個rotatetransform,以對抗該元素,並使事物呈現為縱向

抱歉,我錯過了你的主要問題。 我不認為你可以在肖像模式事件后更改根元素的“旋轉”。 因為它實際上沒有相對於屏幕旋轉,但屏幕尺寸發生了變化。

但是,我想您仍然希望用戶在縱向模式事件后以橫向模式查看您的應用程序。 你可以對抗感知的旋轉。 您可以將業務邏輯放在另一個沒有預定義大小的用戶控件中。 將此用戶控件放在根頁面中。 當您收到縱向模式事件時,將頁面ActualWidth分配給用戶控制高度,將ActualHeight頁面指定給用戶控件寬度,給予用戶控件90度渲染變換並渲染變換中心x =高度* 0.707 /寬度,y = 0.5,然后用戶控件應該只對齊橫向模式位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM