Partager via


Comment : peindre une zone avec une vidéo

Cet exemple montre comment peindre une zone avec un média. Une façon de peindre une zone avec des médias est d’utiliser un MediaElement ensemble avec un VisualBrush. Utilisez le MediaElement support pour charger et lire le média, puis l’utiliser pour définir la Visual propriété du VisualBrush. Vous pouvez ensuite utiliser la VisualBrush zone pour peindre une zone avec le média chargé.

Utiliser un MediaElement avec un Objet VisualBrush

L’exemple suivant utilise un MediaElement et un VisualBrush pour peindre le TextBlockForeground contrôle avec la vidéo. Cet exemple montre comment définir la IsMuted propriété de la MediaElementtrue propriété pour qu’elle 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;
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>

Utiliser VisualBrush avec le média chargé

Comme VisualBrush hérite de la TileBrush classe, il fournit plusieurs modes de mosaïques. En définissant la TileMode propriété d’un VisualBrush à Tile et en définissant sa Viewport propriété sur une valeur inférieure à la zone que vous peinturez, vous pouvez créer un modèle en mosaïque.

L’exemple suivant est identique à l’exemple précédent, sauf que le VisualBrush modèle 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;
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>

Pour plus d’informations sur l’ajout d’un fichier de contenu, tel qu’un fichier multimédia, à votre application, consultez la ressource d’application WPF, le contenu et les fichiers de données. Lorsque vous ajoutez un fichier multimédia, vous devez l’ajouter en tant que fichier de contenu, et non en tant que fichier de ressources.

Voir aussi