Cómo: Pintar un área con un vídeo
Actualización: noviembre 2007
En este ejemplo se muestra cómo pintar un área con multimedia. Una manera de pintar un área con multimedia es utilizar un control MediaElement junto con un objeto VisualBrush. Utilice el control MediaElement para cargar y reproducir multimedia y, a continuación, utilícelo para establecer la propiedad Visual de VisualBrush. Luego, puede utilizar VisualBrush para pintar un área con el contenido multimedia cargado.
Ejemplo
En el ejemplo siguiente se utilizan MediaElement y VisualBrush para pintar el Foreground de un control TextBlock con vídeo. En este ejemplo se establece la propiedad IsMuted de MediaElement en true para que no genere ningún sonido.
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>
Dado que VisualBrush hereda de la clase TileBrush, proporciona varios modos de mosaico. Si establece la propiedad TileMode de VisualBrush en Tile y establece su propiedad Viewport en un valor menor que el área que se está pintando, puede crear un modelo en mosaico.
El ejemplo siguiente es idéntico al ejemplo anterior, salvo que VisualBrush genera un modelo a partir del 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 obtener información sobre cómo agregar a su aplicación un archivo de contenido, como un archivo multimedia, vea Archivos c Windows Presentation Foundation. Los archivos multimedia deben agregarse como archivos de contenido, no como archivos de recursos.
Vea también
Conceptos
Pintar con imágenes, dibujos y elementos visuales
Información general sobre objetos TileBrush
Información general sobre multimedia