适应屏幕旋转 windows phone

Adapting to screen rotation windows phone

我正在使用 MediaCapture 创建相机应用程序。我试图适应屏幕旋转,因此我创建了以下方法:

        private void Current_SizeChanged(object sender, Windows.UI.Core.WindowSizeChangedEventArgs e)
    {
        width = Window.Current.Bounds.Width;
        height = Window.Current.Bounds.Height;
        //captureManager.SetPreviewRotation(VideoRotation.Clockwise90Degrees);
        //if (ApplicationView.GetForCurrentView().Orientation.ToString() == "Portrait") capturePreview.Stretch = Stretch.Fill;
        capturePreview.Width = width;
        capturePreview.Height = height;
        imagePreview.Width = width;
        imagePreview.Height = height;
        //if (ApplicationView.GetForCurrentView().Orientation.ToString() == "Portrait") capturePreview.Stretch = Stretch.Fill;
        //else capturePreview.Stretch = Stretch.Uniform;
    }

当我打开我的应用程序时,相机会填满整个页面,但当我翻转相机时,capturePreview 只占页面的一半,无论我以纵向模式还是横向模式启动应用程序,其他模式都没有关系将不起作用,但如果切换到第一种模式,也会起作用。

另一个问题是关于实际的 capturePreview 布局,我发现如果我将屏幕保持在水平布局,相机效果很好,但如果设备处于纵向模式,我无法在不拉伸照片的情况下填满整个页面,是吗?一种以特定旋转(capturePreview)在屏幕上仅保留一个元素的方法我尝试使用旋转变换旋转它,但这也会影响元素的实际位置。 谢谢

在 WP 中,您可以通过 Window.Sizechanged 事件获取 CurrentViewState。

See this MSDN article (first result from google)