我正在使用以下 XAML 通过 Silverlight 媒体元素显示流式视频:
<UserControl x:Class="slplayer.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Padding="0">
<!-- source is set to a custom MediaStreamSource in code behind -->
<MediaElement Name="mediaElement" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Margin="0" Stretch="Uniform" />
</UserControl>
并且期望视频应该播放并且应该根据播放窗口的大小消耗所有可用的水平空间或所有可用的垂直空间并缩放非约束尺寸以保持视频的纵横比。
在垂直尺寸受到限制的情况下,这正是发生的情况,但是(正如您在下面的屏幕截图中看到的那样)当水平尺寸受到限制时,两侧都会留下大量空间并且垂直尺寸被缩放到这个较窄的宽度。
我的问题是为什么视频没有占用所有水平空间?
我尝试过的事情:
- 简化布局(这就是我得到上述 XAML 的方式)
- 在 Web 浏览器和 SilverlightViewportElement 中托管控件
- 修改 mp4 文件和视频轨道的尺寸
- 在 WMP 中播放 mp4 文件(正确缩放)
- 在使用的 html、body、div 和 object 上设置 css 样式
问题说明: