Partager via


Comment : peindre une zone avec une vidéo

Mise à jour : novembre 2007

Cet exemple montre comment peindre une zone avec un média. Pour peindre une zone avec un média, vous pouvez par exemple utiliser un MediaElement avec un VisualBrush. Utilisez le MediaElement pour charger et lancer le média, puis utilisez-le pour définir la propriété Visual du VisualBrush. Vous pouvez ensuite utiliser le VisualBrush pour peindre une zone avec le média chargé.

Exemple

L'exemple suivant utilise un MediaElement et un VisualBrush pour peindre le Foreground d'un contrôle TextBlock avec une vidéo. Cet exemple affecte true à la propriété IsMuted du MediaElement pour qu'il ne produise aucun son.

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>

Étant donné que VisualBrush hérite de la classe TileBrush, il fournit plusieurs modes de mosaïque. En affectant Tile à la propriété TileMode d'un VisualBrush et en affectant à sa propriété Viewport une valeur inférieure à la zone que vous peignez, vous pouvez créer un modèle en mosaïque.

L'exemple suivant est identique à l'exemple précédent, mais le VisualBrush génère un modèle à partir de la vidéo.

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>

Pour plus d'informations sur l'ajout d'un fichier de contenu, tel qu'un fichier multimédia, à votre application, consultez Fichiers de ressources, de contenu et de données d'une application Windows Presentation Foundation. Lorsque vous ajoutez un fichier multimédia, vous devez l'ajouter comme un fichier de contenu, pas comme un fichier de ressources.

Voir aussi

Concepts

Peinture avec des objets d'image, de dessin et visuels

Vue d'ensemble de TileBrush

Vue d'ensemble du multimédia

Référence

VisualBrush