Поделиться через


Как раскрасить область с видео

В этом примере демонстрируется рисование области с мультимедиа. Одним из способов рисования области с мультимедиа является использование MediaElement вместе с VisualBrush. Используйте объект MediaElement для загрузки и воспроизведения файла мультимедиа, а затем используйте его, чтобы задать свойство Visual для VisualBrush. Затем можно использовать VisualBrush для закрашивания области с загруженным мультимедиа.

Пример

Следующий пример использует MediaElement и VisualBrush, чтобы раскрасить Foreground элемента управления TextBlock с видео. Этот пример задает для свойства IsMuted объекта MediaElement значение true, чтобы отключить звук.

            Dim myMediaElement As New MediaElement()
            myMediaElement.Source = New Uri("sampleMedia\xbox.wmv", UriKind.Relative)
            myMediaElement.IsMuted = True

            Dim myVisualBrush As New VisualBrush()
            myVisualBrush.Visual = myMediaElement

            Dim myTextBlock As New TextBlock()
            myTextBlock.FontSize = 150
            myTextBlock.Text = "Some Text"
            myTextBlock.FontWeight = FontWeights.Bold

            myTextBlock.Foreground = myVisualBrush
MediaElement myMediaElement = new MediaElement();
myMediaElement.Source = new Uri("sampleMedia\\xbox.wmv", UriKind.Relative);
myMediaElement.IsMuted = true;

VisualBrush myVisualBrush = new VisualBrush();
myVisualBrush.Visual = myMediaElement;

TextBlock myTextBlock = new TextBlock();
myTextBlock.FontSize = 150;
myTextBlock.Text = "Some Text";
myTextBlock.FontWeight = FontWeights.Bold;

myTextBlock.Foreground = myVisualBrush;
<TextBlock FontSize="100pt" Text="Some Text" FontWeight="Bold">
  <TextBlock.Foreground>
    <VisualBrush>
      <VisualBrush.Visual>
        <MediaElement Source="sampleMedia\xbox.wmv" IsMuted="True" />
      </VisualBrush.Visual>
    </VisualBrush>
  </TextBlock.Foreground>
</TextBlock>

Поскольку объект VisualBrush наследуется из класса TileBrush, он предоставляет несколько режимов заполнения. Установив для свойства TileMode объекта VisualBrush значение Tile и задав его свойству Viewport значение меньше, чем область закрашивания, можно создать шаблон заполнения.

Следующий пример идентичен предыдущему, за исключением того, что VisualBrush создает шаблон из видео.

            Dim myMediaElement As New MediaElement()
            myMediaElement.Source = New Uri("sampleMedia\xbox.wmv", UriKind.Relative)
            myMediaElement.IsMuted = True

            Dim myVisualBrush As New VisualBrush()
            myVisualBrush.Viewport = New Rect(0, 0, 0.5, 0.5)
            myVisualBrush.TileMode = TileMode.Tile
            myVisualBrush.Visual = myMediaElement

            Dim myTextBlock As New TextBlock()
            myTextBlock.FontSize = 150
            myTextBlock.Text = "Some Text"
            myTextBlock.FontWeight = FontWeights.Bold

            myTextBlock.Foreground = myVisualBrush
MediaElement myMediaElement = new MediaElement();
myMediaElement.Source = new Uri("sampleMedia\\xbox.wmv", UriKind.Relative);
myMediaElement.IsMuted = true;

VisualBrush myVisualBrush = new VisualBrush();
myVisualBrush.Viewport = new Rect(0, 0, 0.5, 0.5);
myVisualBrush.TileMode = TileMode.Tile;
myVisualBrush.Visual = myMediaElement;

TextBlock myTextBlock = new TextBlock();
myTextBlock.FontSize = 150;
myTextBlock.Text = "Some Text";
myTextBlock.FontWeight = FontWeights.Bold;

myTextBlock.Foreground = myVisualBrush;
<TextBlock FontSize="100pt" Text="Some Text" FontWeight="Bold">
  <TextBlock.Foreground>
    <VisualBrush Viewport="0,0,0.5,0.5" TileMode="Tile">
      <VisualBrush.Visual>

        <MediaElement Source="sampleMedia\xbox.wmv" IsMuted="True" /> 
      </VisualBrush.Visual>
    </VisualBrush>
  </TextBlock.Foreground>
</TextBlock>

Сведения о добавлении файла содержимого, например файла мультимедиа, к приложению содержатся в разделе Ресурсы, Содержимое и Файлы данных WPF-приложения. При добавлении файла мультимедиа необходимо добавить его как файл содержимого, а не как файл ресурса.

См. также

Ссылки

VisualBrush

Основные понятия

Рисование с помощью объектов Image, Drawing и Visual

Общие сведения о TileBrush

Общие сведения о мультимедиа