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 mídia é usar um MediaElement juntamente com um VisualBrush. Use o MediaElement para carregar e reproduzir a mídia e, em seguida, 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.
Usar um MediaElement com um VisualBrush
O exemplo a seguir usa um MediaElement e um VisualBrush para pintar o Foreground de um controlo TextBlock com 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;
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
<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>
Usar o VisualBrush com a mídia carregada
Como VisualBrush herda da classe TileBrush, ele disponibiliza vários modos de mosaico. Definindo a propriedade TileMode de um VisualBrush como Tile e definindo a sua propriedade Viewport para um valor inferior à área que está a pintar, pode criar um padrão de azulejos.
O exemplo a seguir é idêntico ao exemplo anterior, exceto que o VisualBrush gera um padrão 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;
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
<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 sobre como adicionar um arquivo de conteúdo, como um arquivo de mídia, ao seu aplicativo, consulte WPF Application Resource, Content, and Data Files. Ao adicionar um arquivo de mídia, você deve adicioná-lo como um arquivo de conteúdo, não como um arquivo de recurso.
Ver também
- VisualBrush
- Pintura com imagens, desenhos e visuais
- Visão geral do TileBrush
- Visão geral multimídia
.NET Desktop feedback