背面相机不会填满屏幕手机8.1的整个宽度

时间:2015-03-11 17:21:08

标签: c# xaml camera windows-phone windows-phone-8.1

我制作通用Windows Phone 8.1应用。我的问题是当我使用后置摄像头时,我的用户界面中的MediaCapture摄像头预览的捕捉元素不会填满整个屏幕宽度,但是当使用前置摄像头时相机它确实填满了整个宽度。我不确定后置摄像头和前置摄像头之间的差异导致了这一点,但这里是重要的代码。

<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="1*"/>
            <RowDefinition Height="11*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1*"/>
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>

        <CaptureElement x:Name="CamCaptureElement"
                        Grid.Row="0"
                        Grid.RowSpan="2"
                        Grid.ColumnSpan="2"
                        Grid.Column="0"
                        Stretch="UniformToFill"/>
</Grid>

网格行和列用于计划在相机预览之上的UI元素。

这是我对MediaCature的初始化。

var webcamList = await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture);
frontWebcam = (from webcam in webcamList
                where webcam.EnclosureLocation != null
                && webcam.Name.ToLowerInvariant().Contains("front")
                select webcam).FirstOrDefault();
backWebcam = (from webcam in webcamList
                where webcam.EnclosureLocation != null
                && webcam.Name.ToLowerInvariant().Contains("back")
                select webcam).FirstOrDefault();

mediaCapture = new MediaCapture();
await mediaCapture.InitializeAsync(new MediaCaptureInitializationSettings {
    VideoDeviceId = backWebcam.Id,
    StreamingCaptureMode = StreamingCaptureMode.Video,
    PhotoCaptureSource = PhotoCaptureSource.VideoPreview,
    AudioProcessing = AudioProcessing.Default
});

imageEncodingPropsBack = ImageEncodingProperties.CreateJpeg();
imageEncodingPropsBack.Width = 800;
imageEncodingPropsBack.Height = 600;

mediaCapture.SetPreviewRotation(VideoRotation.Clockwise90Degrees);

CamCaptureElement.Source = mediaCapture;

mediaCapture.VideoDeviceController.PrimaryUse = CaptureUse.Photo;

1 个答案:

答案 0 :(得分:0)

做一件事。

在网格内部添加一个图像框,其中包含最终图像!将拉伸属性设置为 UNIFORM 。不要给任何高度和高度宽度到图像框。操作模式(横向和底部)时,图像会调整大小并保持其纵横比!这就是为什么在一种模式下你只能看到它占据屏幕的一半