MediaElement 不支持圆角(radiusx、radiusy)。我应该在带圆角的矩形上使用 VideoBrush 吗?
Jon Galloway
问问题
1188 次
4 回答
2
是的-在某种程度上,您既是在问问题又是在自己回答问题……但这是我能想到的两个选择之一。可能出现问题的原因是您丢失了从 MediaElement 控件获得的一些功能/控件。另一种选择是这样做:
- 将您的 MediaElement 添加到您的页面。
- 在其上绘制一个矩形并设置所需的角半径
- 右键单击 Blend 中的矩形并选择“创建剪切路径”
- 将剪切路径应用于您的 MediaElement
这样,您仍在使用 MediaElement 控件,但您可以“剪裁”任何您想要获得所需的圆角效果的东西。
此示例显示剪辑的 MediaElement。我知道绘制矢量路径并不容易,但如果你在 Blend 中打开它,你会看到一个圆形的 MediaElement。
<MediaElement
Height="132" Width="176" Source="Egypt2007.wmv"
Clip="M0.5,24.5 C0.5,11.245166 11.245166,0.5 24.5,0.5 L151.5,0.5
C164.75484,0.5 175.5,11.245166 175.5,24.5 L175.5,107.5 C175.5,
120.75484 164.75484,131.5 151.5,131.5 L24.5,131.5 C11.245166,
131.5 0.5,120.75484 0.5,107.5 z"/>
于 2008-08-28T01:09:58.077 回答
0
使用圆角矩形和 VideoBrush 不会失去任何功能/控制使用显示的 MediaElement - 因为元素必须在 Xaml 中,所以您可以使用通常的播放/暂停/停止方法来控制它,除了播放发生在您的矩形中。使用剪辑区域有点笨拙,因为调整区域的大小更加困难。矩形更好,因为您具有布局的灵活性。
<MediaElement x:Name="myElement" Source="clip.wmv" Visibility="Collapsed"/>
<Rectangle RadiusX="10" RadiusY="10" Width="640" Height="480">
<Rectangle.Fill>
<VideoBrush Source="myElement" Stretch="Uniform"/>
</Rectangle.Fill>
<Rectangle/>
于 2008-09-15T11:11:22.490 回答
0
带有“硬”边缘的剪辑路径 - 您也可以使用 OpacityMask(尽管我认为这需要更多的处理能力)。
于 2008-09-15T18:17:37.317 回答
0
试试这个
<Border CornerRadius="8" BorderBrush="Black" Background="Black" BorderThickness="3">
<MediaElement HorizontalAlignment="Center" VerticalAlignment="Top" Stretch="Fill" x:Name="Player" Source="/Assets/Videos/x.mp3" />
</Border>
于 2015-11-19T12:40:23.347 回答