Compartir a través de


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

Referencia

VisualBrush