使用视频处理MediaElement

时间:2013-11-21 07:07:59

标签: c# windows-8 mediaelement windows-8.1

我有一个Page,并且MediaElement在其上展开:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <MediaElement x:Name="Player" HorizontalAlignment="Stretch" Margin="0" VerticalAlignment="Stretch" Source="myvideo.mp4"/>
</Grid>

当我打开页面时,它看起来像这样:

enter image description here

这是因为视频的大小与Page不相同。

好的,我想扩展我设置ViewBox的内容:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <Viewbox Stretch="UniformToFill" StretchDirection="Both">
    <MediaElement x:Name="Player" HorizontalAlignment="Stretch" Margin="0" VerticalAlignment="Stretch" Source="myvideo.mp4"/>
    </Viewbox>
</Grid>

但现在徽标(视频中心)不在页面中心。 如何实现?

现在看起来像这样:

enter image description here

从中心偏移仅为垂直,水平看起来像徽标保留在中心。

MediaElement中有一个Stretch选项,但有些人为什么在我设置它时说:Unknown member&#39; Stretch&#39;元素MediaElement

2 个答案:

答案 0 :(得分:1)

当你设置它时,它似乎按照你想要的方式工作:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <MediaElement x:Name="Player" Stretch="UniformToFill Source="myvideo.mp4"/>
</Grid>

从MS文档中看起来只有Windows 8.1支持Stretch:http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.mediaelement.stretch.aspx

答案 1 :(得分:1)

答案是设置ViewBox元素的VerticalAligment =“Center”

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<Viewbox VerticalAligment="Center" Stretch="UniformToFill" StretchDirection="Both">
<MediaElement x:Name="Player" HorizontalAlignment="Stretch" Margin="0" VerticalAlignment="Stretch" Source="myvideo.mp4"/>
</Viewbox>