다음을 통해 공유


방법: 비디오로 영역 그리기

이 예제에서는 미디어로 영역을 그리는 방법을 보여 줍니다. 미디어로 영역을 그리는 한 가지 방법은 MediaElementVisualBrush와 함께 사용하는 것입니다. MediaElement를 사용하여 미디어를 로드하고 재생한 다음, 해당 미디어를 사용하여 VisualBrushVisual 속성을 설정합니다. 그런 다음 VisualBrush를 사용하여 로드된 미디어로 영역을 그릴 수 있습니다.

MediaElement를 VisualBrush와 함께 사용

다음 예제에서는 MediaElementVisualBrush를 사용하여 비디오로 TextBlock 컨트롤의 Foreground를 그립니다. 이 예제는 소리를 생성하지 않도록 MediaElementIsMuted 속성을 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를 로드된 미디어와 함께 사용

VisualBrushTileBrush 클래스에서 상속하므로 여러 바둑판식 배열 모드를 제공합니다. VisualBrushTileMode 속성을 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 애플리케이션 리소스, 콘텐츠 및 데이터 파일을 참조하세요. 미디어 파일을 추가할 때는 리소스 파일이 아닌 콘텐츠 파일로 추가해야 합니다.

참고 항목