次の方法で共有


方法: ビデオを使用して領域を塗りつぶす

この例では、メディアを使用して領域を塗りつぶす方法を示します。 メディアを使用して領域を塗りつぶす 1 つの方法は、VisualBrush と共に MediaElement を使用する方法です。 MediaElement を使用してメディアを読み込み、再生し、それを使用して VisualBrushVisual プロパティを設定します。 それから、VisualBrush を使用して、読み込まれたメディアで領域を塗りつぶします。

VisualBrush で MediaElement を使用する

次の例では、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 アプリケーションのリソース ファイル、コンテンツ ファイル、およびデータ ファイル」を参照してください。 メディア ファイルを追加する場合は、それをリソース ファイルとしてではなく、コンテンツ ファイルとして追加する必要があります。

関連項目