方法 : ビデオを使用して領域を塗りつぶす
更新 : 2007 年 11 月
この例では、メディアを使用して領域を塗りつぶす方法を示します。メディアを使用して領域を塗りつぶす 1 つの方法は、MediaElement と共に VisualBrush を使用することです。MediaElement を使用してメディアを読み込んで再生した後、そのメディアを使用して VisualBrush の Visual プロパティを設定します。その後は、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;
<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 は 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;
<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>
メディア ファイルなどのコンテンツ ファイルをアプリケーションに追加する方法については、「Windows Presentation Foundation アプリケーションのリソース、コンテンツ、およびデータ ファイル」を参照してください。メディア ファイルを追加するときは、リソース ファイルとしてではなく、コンテンツ ファイルとして追加する必要があります。