Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# wpf画布和视频控制全屏_C#_Wpf_Video_Wpf Controls - Fatal编程技术网

C# wpf画布和视频控制全屏

C# wpf画布和视频控制全屏,c#,wpf,video,wpf-controls,C#,Wpf,Video,Wpf Controls,在我的WPF程序中,我想画一个形状。然后在我按下一个按钮后,程序以全屏模式播放视频。我似乎无法在画布上全屏播放视频 我的XAML如下所示 <Canvas> <Ellipse Name="face1" Panel.ZIndex="2" Fill="Green" Width="400" Height="400" /> <MediaElement Panel.ZIndex="1000" Name="videoControl1" Stretch="Fill"

在我的WPF程序中,我想画一个形状。然后在我按下一个按钮后,程序以全屏模式播放视频。我似乎无法在画布上全屏播放视频

我的XAML如下所示

<Canvas>
    <Ellipse Name="face1" Panel.ZIndex="2" Fill="Green" Width="400" Height="400" />
    <MediaElement Panel.ZIndex="1000" Name="videoControl1" Stretch="Fill" 
                  Source="C:\Users\videos\carcrash.mp4" 
                  LoadedBehavior="Manual" MediaEnded="videoControl1_MediaEnded">            
    </MediaElement>
</Canvas>


如你所见,我把视频放在我的形状前面。当按下按钮时,我开始播放视频。因此,视频将出现在形状的前面。问题是视频非常小。如何实现全屏?

根据Dennis Cheng的评论:

画布是一个“无布局”面板,因此子对象的大小不会与父对象的大小相同。尝试 如果希望子对象填充或手动绑定到父对象的大小,请使用网格 如果必须使用画布:


这会将视频的宽度缩放到包含画布的宽度,但仍与原始尺寸成比例

如果使用栅格,则可以实现您的目标缩放:

<Grid Width="500" Height="500">
    <Ellipse Name="face1"
            Width="400"
            Height="400"
            Panel.ZIndex="2"
            Fill="Green" />
    <MediaElement Name="videoControl1"
                Grid.Row="0"
                Panel.ZIndex="1000"
                Source="D:\Downloads\The.Strain.S01E13.HDTV.x264-LOL.mp4"
                Stretch="Fill" />
</Grid>


你能在“网格”上画画吗?我需要画椭圆,路径等。把画布叠在MediaElement上怎么样?太好了。您的方法1已经运行良好。非常感谢。一个小问题是,如果视频与画布的纵横比不同,那么视频就会失真?恐怕失真问题没有太多的解决方法-您无法使用MediaElement自动为视频添加额外像素。你唯一能做的就是重新编码视频,使其具有不同的纵横比,或者添加一个信箱。您可以使用一些中等强度的FFmpeg命令来实现这一点:。
<Grid Width="500" Height="500">
    <Ellipse Name="face1"
            Width="400"
            Height="400"
            Panel.ZIndex="2"
            Fill="Green" />
    <MediaElement Name="videoControl1"
                Grid.Row="0"
                Panel.ZIndex="1000"
                Source="D:\Downloads\The.Strain.S01E13.HDTV.x264-LOL.mp4"
                Stretch="Fill" />
</Grid>