【问题标题】:Media Element is cut on the bottom WPF媒体元素在底部 WPF 上被剪切
【发布时间】:2016-12-21 12:16:58
【问题描述】:

我在 MediaElement 中显示视频时遇到问题。

我尝试将 MediaElement 放入 Grid 中,以便获取他的尺寸:

<Grid Grid.Row="1" Name="RootMediaElement"
      Margin="10 10 10 10">
    <MediaElement
    ClipToBounds="True"
    x:Name="MediaPlayer"
    HorizontalAlignment="Center"
    Stretch="UniformToFill"
    LoadedBehavior="Manual"
    Source="{Binding Source}">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="MediaEnded">
                <i:InvokeCommandAction Command="{Binding MediaEndedCommand}" />
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </MediaElement>
</Grid>

我还将 ClipToBound 属性设置为 true,这也没有帮助。我看不到视频的底部。还有一个 SizeChanged 事件在开始时触发,我尝试手动设置宽度和高度,如下所示:

 MediaPlayer.SizeChanged += (sender, args) =>
            {
                var x = sender as MediaElement;
                MediaPlayer.Height = RootMediaElement.ActualHeight;
                MediaPlayer.Width = RootMediaElement.ActualWidth;

            };

我读了这么多,找不到解决办法。有谁知道吗?

编辑:父网格设置

<Grid>
<Grid.RowDefinitions>
            <RowDefinition Height="105" /> <!-- First row-->
            <RowDefinition Height="895" /> <!-- Second row -->
</Grid.RowDefinitions>

<!-- Media is places inside RootMediaElement Grid which take whoole second row -->
</Grid>

【问题讨论】:

  • RowDefenitions 可能有误,请提供父网格设置
  • 我已经编辑了请看一下

标签: c# wpf


【解决方案1】:

我已经测试了你的 xaml,你可能想要添加这个

VerticalAlignment="Center"

到您的 MediaElement,但请记住,您的视频会被“放大”

编辑:您为两行指定了一个高度值,这意​​味着它们在调整窗口大小时不会改变,因此您应该

将窗口最小高度设置为第 1 行高度 + 第 2 行高度 + 边距 (RootMediaGrid) (1030px):

MinHeight="1030"

或者只是将第二行高度设置为:

<RowDefinition Height="*" />

【讨论】:

    猜你喜欢
    • 2011-01-23
    • 1970-01-01
    • 2017-09-09
    • 2014-08-13
    • 2018-04-07
    • 2013-02-21
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    相关资源
    最近更新 更多