媒体元素设置自动高度和宽度

时间:2015-12-15 10:23:51

标签: xaml windows-phone-8.1

我有媒体元素问题。控件中有黑色区域,因为我在应用程序中的背景是白色ID看起来不太好。我知道没有办法变色(或者说我错了),但也许有一种方法可以用xaml实现这一点。

enter image description here enter image description here

第一张照片是我当前拥有的(橙色是视频)。第二张图片显示了我想要实现的目标。

<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
    <MediaElement x:Name="CameraFeed" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="Collapsed"/>
</Grid>

上面是我的xaml代码 - 贪婪需要拉伸,因为它处于枢轴状态,我希望整个枢轴可以拖动。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

经过一些测试后我设法做到了。如果有人遇到类似的问题我会发帖:

最初,我的MediaElement将Visibility属性设置为Collapsed,因此我需要添加MediaElement_Started事件。

在我改变可见性后的这个事件中,我调用了这个函数:

    public void SetMinimizedImage()
    {
        var naturalWidth = CameraFeed.NaturalVideoWidth;
        var naturalHeigth = CameraFeed.NaturalVideoHeight;
        var width = CameraGrid.ActualWidth;
        var heigth = CameraGrid.ActualHeight;

        if(naturalWidth < width)
        {
            CameraFeed.Height = naturalHeigth;
            CameraFeed.Width = naturalWidth;
            return;
        }

        var ratio = naturalWidth / width;
        var heigthToSet = heigth / ratio;
        CameraFeed.Height = heigthToSet;
        CameraFeed.Width = width;
    }

它设定了黑色区域所需的高度和宽度。 :)如果您对此代码有任何改进,请继续告诉我!