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


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

Обновлен: Ноябрь 2007

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

Пример

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

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 создает шаблон из видео.

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>

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

См. также

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

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

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

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

Ссылки

VisualBrush