4

MediaElement 不支持圆角(radiusx、radiusy)。我应该在带圆角的矩形上使用 VideoBrush 吗?

4

4 回答 4

2

是的-在某种程度上,您既是在问问题又是在自己回答问题……但这是我能想到的两个选择之一。可能出现问题的原因是您丢失了从 MediaElement 控件获得的一些功能/控件。另一种选择是这样做:

  1. 将您的 MediaElement 添加到您的页面。
  2. 在其上绘制一个矩形并设置所需的角半径
  3. 右键单击 Blend 中的矩形并选择“创建剪切路径”
  4. 将剪切路径应用于您的 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 回答