Como: Pintar uma área com um vídeo
Este exemplo mostra como pintar uma área com mídia. Uma maneira de pintar uma área com uma mídia é usar um MediaElement juntamente com um VisualBrush. Use o MediaElement para carregar e executar a mídia, e então use-o para definir a propriedade Visual do VisualBrush. Em seguida, você pode usar o VisualBrush para pintar uma área com a mídia carregada.
Exemplo
O seguinte exemplo usa um MediaElement e um VisualBrush para pintar o Foreground de um controle TextBlock com um vídeo. Este exemplo define a propriedade IsMuted do MediaElement como true para que ele não produza nenhum som.
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>
Como VisualBrush herda da classe TileBrush, ele oferece vários modos de colocação lado a lado. Ao definir a propriedade TileMode de um VisualBrush como Tile e definindo sua propriedade Viewport como um valor menor do que a área que você está pintando, você pode criar um padrão de azulejos lado a lado.
O exemplo a seguir é idêntico ao exemplo anterior, exceto pelo fato de que o VisualBrush gera um padrão a partir do vídeo.
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>
Para obter informações adicionais sobre como adicionar um arquivo de conteúdo, como um arquivo de mídia, a o seu aplicativo, consulte Arquivos de Recurso, Conteúdo e Dados de Aplicações Windows Presentation Foundation. Quando você adicionar um arquivo de mídia, você deve adicioná-lo como um arquivo de conteúdo, não como um arquivo de recurso.
Consulte também
Conceitos
Pintura com Imagens, Desenhos e Visuais