Instrukcje: malowanie obszaru za pomocą filmu wideo
W tym przykładzie pokazano, jak malować obszar za pomocą multimediów. Jednym ze sposobów na pomalowanie obszaru przy użyciu mediów jest zastosowanie MediaElement razem z VisualBrush. Użyj MediaElement, aby załadować i odtworzyć materiał, a następnie użyj go do ustawienia właściwości VisualVisualBrush. Następnie można użyć VisualBrush do malowania powierzchni załadowanym materiałem.
Używanie elementu MediaElement z programem VisualBrush
W poniższym przykładzie użyto MediaElement i VisualBrush do malowania Foreground kontrolki TextBlock za pomocą wideo. W tym przykładzie ustawiono właściwość IsMutedMediaElement na true
, aby nie wydawała dźwięku.
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>
Użyj VisualBrush z załadowanym multimedium
Ponieważ VisualBrush dziedziczy z klasy TileBrush, zapewnia kilka trybów tiling. Ustawiając właściwość TileModeVisualBrush na Tile i ustawiając jej właściwość Viewport na wartość mniejszą niż obszar, który malujesz, możesz utworzyć wzór kafelkowy.
Poniższy przykład jest identyczny z poprzednim przykładem, z tą różnicą, że VisualBrush generuje wzorzec z filmu wideo.
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>
Aby uzyskać informacje na temat dodawania pliku zawartości, takiego jak plik multimedialny, do aplikacji, zobacz zasób aplikacji WPF, zawartość i pliki danych. Po dodaniu pliku multimedialnego należy dodać go jako plik zawartości, a nie jako plik zasobu.
Zobacz też
.NET Desktop feedback