question

aclap-1020 avatar image
0 Votes"
aclap-1020 asked vb2ae answered

Display orientation change event for tablet devices

I am looking for an event when the orientation of the device changes from landscape to portrait or vice versa. And I tried this (https://docs.microsoft.com/en-us/uwp/api/windows.graphics.display.displayinformation.orientationchanged?view=winrt-19041) -

 Windows.Graphics.Display.DisplayInformation.GetForCurrentView().OrientationChanged += Reader_OrientationChanged;

 private void Reader_OrientationChanged(Windows.Graphics.Display.DisplayInformation sender, object args)
 {
 }

But the Reader_OrientationChanged method is never called. Windows.Graphics.Display.DisplayInformation.GetForCurrentView().CurrentOrientation gives the write display orientation value, but for some reason the event never fires.

Am I missing something here, how to make this event work? Or is there any other way to subscribe to an event for display orientation change?

I also tried SimpleOrientationSensor.GetDefault().OrientationChanged, but SimpleOrientationSensor.GetDefault() returns null on the simulator so can't test if it works as expected.




dotnet-csharpwindows-uwp
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

1 Answer

vb2ae avatar image
0 Votes"
vb2ae answered

Looking at the docs.

The OrientationChanged event occurs only when orientation of the display or monitor changes and not necessarily when the orientation of your app changes. To determine the orientation of your app for layout purposes, use the ApplicationView.Value property.


Maybe you could use the ApplicationView.VisibleBoundsChanged event. In the event you should get the application view where you can check its orientation


5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.