Каков наилучший способ отображения видео со скругленными углами в Silverlight?

StackOverflow https://stackoverflow.com/questions/31346

  •  09-06-2019
  •  | 
  •  

Вопрос

MediaElement не поддерживает закругленные углы (radius x, radiusy).Должен ли я использовать VideoBrush на прямоугольнике со скругленными углами?

Это было полезно?

Решение

Да, в каком-то смысле вы сами задаете этот вопрос и сами на него отвечаете...Но это один из двух вариантов, которые я могу придумать.Причины, которые могут быть проблемой, заключаются в том, что вы теряете некоторые функции / элементы управления, которые получаете от элемента управления MediaElement.Другой вариант - сделать это:

  1. Добавьте свой MediaElement на свою страницу.
  2. Нарисуйте поверх него прямоугольник и задайте желаемый радиус угла
  3. Щелкните правой кнопкой мыши прямоугольник в области наложения и выберите "Создать контур обрезки".
  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"/>

Другие советы

Использование закругленного прямоугольника и 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/>

Путь клипа с дает вам "жесткие" края - вы также могли бы использовать маску непрозрачности (хотя я полагаю, что для этого требуется гораздо больше вычислительной мощности).

Попробуй это

 <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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top