开发者

WP7 (Windows phone 7) Lock phone orientation in XAML or C#

开发者 https://www.devze.com 2023-03-05 10:02 出处:网络
Is it possible to manualy lock the phone orientation in Windows phone 7 ? Because I\'m using the accelerometer to handle buttons\' rotation with a fixed 开发者_JAVA技巧UI.

Is it possible to manualy lock the phone orientation in Windows phone 7 ? Because I'm using the accelerometer to handle buttons' rotation with a fixed 开发者_JAVA技巧UI.

I've tried that :

In the XAML

SupportedOrientations="Landscape" Orientation="LandscapeLeft"
OrientationChanged="PhoneApplicationPage_OrientationChanged"

And in the code behind :

private void PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
{
    //Orientation locking
    //Do nothing
}

But the UI is still shifting between landscape left and landscape right...

Thanks.


There is no way to prevent the shifting between LandscapeLeft and LandScapeRight. This is by design.

As a work around, you can manually rotate/transform your UIElements in the OnOrientationChanged so that the user doesn't see a difference.
I've used this technique to keep a "background" image from appearing to rotate regardless of orientation but then having a separate control which appears like a popup but which does respond to orientation changes show on top of the image.


Hi I found a solution by overriding OnOrientationChanged method. It works for me. That do not affect system tray and application menu, but page stay in the selected orientation.

protected override void OnOrientationChanged(OrientationChangedEventArgs e)
{
    if (e.Orientation == PageOrientation.LandscapeLeft)
        base.OnOrientationChanged(e);
}


add this this.SupportedOrientations = SupportedPageOrientation.Portrait; after InitializeComponent(); in MainPage() constructor to lock the orientation in Portrait mode. It works fine for me.

0

精彩评论

暂无评论...
验证码 换一张
取 消