在我的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>
正如您所看到的,我将视频放在了我的面前。当sson作为按钮被按下时,我开始播放视频。所以视频将在形状的前面。问题是视频非常小。如何全屏显示?
答案 0 :(得分:1)
Per Dennis Cheng的评论here:
Canvas是一个“无布局”面板,因此儿童不会调整为父级。尝试 网格如果您希望子项填充或手动绑定到父项的大小 如果你必须使用画布:
<Canvas x:Name="MyCanvas"
Width="300"
Height="300">
<Ellipse Name="face1"
Width="400"
Height="400"
Panel.ZIndex="2"
Fill="Green" />
<MediaElement Name="videoControl1"
Width="{Binding RelativeSource={RelativeSource Self},
Path=Parent.ActualWidth}"
Height="{Binding RelativeSource={RelativeSource Self},
Path=Parent.ActualHeight}"
Panel.ZIndex="1000"
Source="C:\Users\videos\carcrash.mp4" />
</Canvas>
将视频的宽度缩放到包含Canvas的宽度,但它仍与原始尺寸成比例。
如果您使用网格,您可以实现您的目标:
<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>