在WPF中使用视频作为网格的背景

时间:2018-12-19 14:20:54

标签: c# wpf xaml video

我想将视频显示为网格背景。基于this post,我创建了以下网格代码:

<Grid>
  <Grid.Background>
    <VisualBrush>
      <VisualBrush.Visual>
        <StackPanel Background="White">
          <Image Source="/WPF.Resources;component/Videos/background.wmv" Opacity="0.3"></Image>
        </StackPanel>
      </VisualBrush.Visual>
    </VisualBrush>
  </Grid.Background>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="1*" />
    <ColumnDefinition Width="491" />
    <ColumnDefinition Width="491" />
    <ColumnDefinition Width="1*" />
  </Grid.ColumnDefinitions>
  <Grid.RowDefinitions>
    <RowDefinition Height="1*" />
    <RowDefinition Height="250" />
    <RowDefinition Height="250" />
    <RowDefinition Height="105" />
    <RowDefinition Height="1*" />
  </Grid.RowDefinitions>
</Grid>

但是我遇到此错误:

  

混合不支持此文件格式。 D:\ WPF \ Resources \ Videos \ background.wmv

WPF支持哪种类型的文件作为视频背景?我尝试播放视频,并且可以播放它,因此它是有效的文件格式。

2 个答案:

答案 0 :(得分:1)

使用Image代替MediaElement

<VisualBrush.Visual>            
       <StackPanel Background="White">
                        <MediaElement Source="/WPF.Resources;component/Videos/background.wmv" Opacity="0.3"></MediaElement>
                    </StackPanel>
                </VisualBrush.Visual>

转到 background.wmv 文件的属性,然后在Copy to Output Directory中选择Copy always。这意味着视频将被复制到bin文件夹,并且wpf应用程序将可以从那里访问该文件,并且该视频将被取消。

enter image description here

答案 1 :(得分:0)

尝试使用MediaElement代替Image