3

Windows 8 Phone プロジェクトに取り組んでいますが、右上隅にある方向変更ボタンをクリックしても期待どおりに動作しないことに気付きました。

電話エミュレーターは横向きに変わりますが、ビューは変わらず、OnOrientationChangedイベントは発生しません。

また、 からPortraitUp、これを行うときに PhoneApplicationPage.Orientation プロパティも変更されません。これはエミュレーターのバグですか、他の誰かがこれで運が良かったですか?

Windows 8 phone は、UI 要素を自動的に再配置することになっていますか? そのビュー用に特別に指定されたレイアウトがなくても?

4

2 に答える 2

3

このOrientationChangedイベントは、Windows Phone 8 でも動作するはずです。ページPortraitOrLandscapeSupportedOrientationsプロパティに次のように入力してください。

<phone:PhoneApplicationPage 
    x:Class="WP8Application.Page1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"        
    mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="480"
    shell:SystemTray.IsVisible="True" 
    SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
    OrientationChanged="PhoneApplicationPage_OrientationChanged_1">

ポイントは、単純に、PortraitまたはLandscapeサポートされている向きで離れると、電話を回転させてもアプリケーションの向きが実際には変わらないためOrientationChanged、イベントはトリガーされないということです。

あなたの他の質問については、SupportedOrientationsプロパティを正しく設定するとわかるように、Windows Phone は UI 要素を自動的に再配置するはずです。ほとんどの場合、要素の位置を明示的にピクセル単位で設定しない限り、自動レイアウトがニーズに合っているはずです。

于 2012-11-16T06:50:06.110 に答える
0

ページを両方のタイプの方向で機能させたい場合は、方向を縦にしないでください。そのパラメーターを省略し、SupportedOrientations パラメーターのみを残す必要があります。エミュレーターで機能しないのは、Portrait から LandScape に移行するときの InputScope です。誰もそれについて言及していないようです。

于 2013-09-23T19:37:38.053 に答える