방법: 비디오로 영역 그리기
이 예제에서는 미디어로 영역을 그리는 방법을 보여 줍니다. 미디어로 영역을 그리는 한 가지 방법은 MediaElement를 VisualBrush와 함께 사용하는 것입니다. MediaElement를 사용하여 미디어를 로드하고 재생한 다음, 해당 미디어를 사용하여 VisualBrush의 Visual 속성을 설정합니다. 그런 다음 VisualBrush를 사용하여 로드된 미디어로 영역을 그릴 수 있습니다.
MediaElement를 VisualBrush와 함께 사용
다음 예제에서는 MediaElement와 VisualBrush를 사용하여 비디오로 TextBlock 컨트롤의 Foreground를 그립니다. 이 예제는 소리를 생성하지 않도록 MediaElement의 IsMuted 속성을 true
로 설정합니다.
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>
VisualBrush를 로드된 미디어와 함께 사용
VisualBrush는 TileBrush 클래스에서 상속하므로 여러 바둑판식 배열 모드를 제공합니다. VisualBrush의 TileMode 속성을 Tile로 설정하고 해당 Viewport 속성을 그리는 영역보다 작은 값으로 설정하면 바둑판식 패턴을 만들 수 있습니다.
다음 예제는 VisualBrush가 비디오에서 패턴을 생성한다는 점을 제외하고 이전 예제와 동일합니다.
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>
미디어 파일과 같은 콘텐츠 파일을 애플리케이션에 추가하는 방법에 대한 자세한 내용은 WPF 애플리케이션 리소스, 콘텐츠 및 데이터 파일을 참조하세요. 미디어 파일을 추가할 때는 리소스 파일이 아닌 콘텐츠 파일로 추가해야 합니다.
참고 항목
.NET Desktop feedback
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기