MediaElement不支持圆角(radiusx,radiusy)。我应该在带圆角的矩形上使用VideoBrush吗?
答案 0 :(得分:2)
是的 - 在某种程度上,你自己都在询问和回答这个问题......但这是我能想到的两个选择之一。可能存在问题的原因是您丢失了从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"/>
答案 1 :(得分:0)
使用圆角矩形和VideoBrush不会丢失使用显示的MediaElement的任何功能/控制 - 因为元素必须在Xaml中,您可以使用常用的播放/暂停/停止方法控制它,除了播放在矩形中。使用剪辑区域有点笨拙,因为调整区域的难度更大。 Rectangle更好,因为你有灵活的布局。
<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/>
答案 2 :(得分:0)
剪辑路径为您提供“硬”边缘 - 您也可以使用OpacityMask(虽然我想这需要更多的处理能力)。
答案 3 :(得分: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>