Xamarin.Forms Page.Width half of what it should be during SizeChanged

In my ContentPage (which takes up the whole screen), I'm setting the SizeChanged event as follows:

private void init()
    EventHandler orientation_update_handler = (object sender, System.EventArgs e) =>
        var binding_context = BindingContext as MyViewModel;
        binding_context?.OnOrientationChanged(Width, Height, Scale);
    SizeChanged += orientation_update_handler;
    orientation_update_handler.Invoke(null, null);
    // other event handler setup...

Trying to set a breakpoint within orientation_update_handler but that's not getting hit... Anyways; set a breakpoint in OnOrientationChanged. The width and height it's receiving are both half of what they actually are, and the scale always seems to be 1.

However, in my App delegate's FinishedLaunching function, while UIScreen.MainScreen.Bounds.Width always seems to be the same as ContentPage.Width, UIScreen.MainScreen.Bounds.Scale on the other hand is different to ContentPage.Scale and multiplying UIScreen.MainScreen.Bounds.Width by UIScreen.MainScreen.Bounds.Scale gives me the correct screen resolution of the device.

Why is ContentPage.Scale always 1? If it were the correct value, I could multiply by the width and get the correct screen resolution.