Gewusst wie: Zeichnen eines Bereichs mit einem Video
Dieses Beispiel veranschaulicht, wie ein Bereich mit Medien gezeichnet wird. Eine Möglichkeit zum Zeichnen eines Bereichs mit Medien besteht darin, MediaElement zusammen mit VisualBrush zu verwenden. Verwenden Sie MediaElement zum Laden und Wiedergeben der Medien, und legen Sie damit anschließend die Visual-Eigenschaft von VisualBrush fest. Sie können dann VisualBrush verwenden, um einen Bereich mit den geladenen Medien zu zeichnen.
Beispiel
Im folgenden Beispiel werden MediaElement und VisualBrush verwendet, um den Foreground eines TextBlock-Steuerelements mit einem Video zu zeichnen. In diesem Beispiel wird die IsMuted-Eigenschaft von MediaElement auf true festgelegt, damit kein Sound abgespielt wird.
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
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>
Da VisualBrush von der TileBrush-Klasse erbt, sind verschiedene Unterteilungsmodi verfügbar. Wenn die TileMode-Eigenschaft von VisualBrush auf Tile und die Viewport-Eigenschaft auf einen Wert festgelegt wird, der kleiner ist als der zu zeichnende Bereich, können Sie ein gekacheltes Muster erstellen.
Das folgende Beispiel ist mit dem vorherigen Beispiel identisch, allerdings wird hier von VisualBrush ein Muster aus dem Video erstellt.
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
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>
Informationen zum Hinzufügen einer Inhaltsdatei zur Anwendung, z. B. einer Mediendatei, finden Sie unter WPF-Anwendungsressource, Inhalts- und Datendateien. Wenn Sie eine Mediendatei hinzufügen, müssen Sie diese als Inhaltsdatei und nicht als Ressourcendatei hinzufügen.