ImageBrush クラス

定義

イメージで領域を塗りつぶします。 通常、画像ソースは、Joint Photographic Experts Group (JPEG) などのファイル形式から取得されます。

public ref class ImageBrush sealed : TileBrush
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ImageBrush final : TileBrush
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class ImageBrush final : TileBrush
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class ImageBrush : TileBrush
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class ImageBrush : TileBrush
Public NotInheritable Class ImageBrush
Inherits TileBrush
<ImageBrush .../>
継承
Object Platform::Object IInspectable DependencyObject Brush TileBrush ImageBrush
属性

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)

この XAML の例では、TextBlockForeground プロパティを ImageBrush に設定する方法を示します。画像は TextBlock でレンダリングされるテキストの塗りつぶしとして使用されます。

<!-- TextBlock with an image brush applied to the text. -->
<TextBlock FontFamily="Verdana" FontSize="72"
 FontStyle="Italic" FontWeight="Bold">
    SHRUBBERY
  <TextBlock.Foreground>
    <ImageBrush ImageSource="forest.jpeg"/>
  </TextBlock.Foreground>
</TextBlock>
テキストに適用された ImageBrush

注釈

ImageBrush は、そのコンテンツをイメージとして定義する ブラシ の一種であり、必要に応じて拡大および整列できます。 ImageBrush の用途には、テキストの装飾効果や、コントロールまたはレイアウト コンテナーの画像背景が含まれます。

次の 2 つのメインシナリオでは、Image コントロールの代わりに ImageBrush を使用すると便利です。

  1. 楕円や境界線などの四角形以外の領域をイメージで塗りつぶす場合
  2. 1 つの ImageBrush を使用して、複数の領域または UIElements を同じイメージで描画する必要があります。これは、複数の イメージ コントロールを使用するよりも効率的です

コードを使用して ImageBrush を定義する場合は、既定のコンストラクターを使用し、 ImageBrush.ImageSource を設定します。 これには、コード内の BitmapImage (URI ( Uniform Resource Identifier) ではなく) が必要です。 ソースがストリームである場合は、SetSourceAsync メソッドを使って値を初期化します。 ソースが、ms-appx または ms-resource スキームを使用するアプリ内のコンテンツを含む Uniform Resource Identifier (URI) の場合は、Uniform Resource Identifier (URI) を受け取る BitmapImage コンストラクターを使用します。 画像ソースが使えるようになるまで代替コンテンツを表示することが必要であるなど、画像ソースの取得やデコードについてタイミングの問題がある場合は、ImageOpened イベントを処理することも検討してください。 コード例については、「 XAML イメージのサンプル 」を参照してください。

注意

現在のスケール修飾子とカルチャ修飾子を使用して非修飾リソースにアクセスする場合は自動処理を使用できます。また、 ResourceManagerResourceMap をカルチャとスケールの修飾子と共に使用してリソースを直接取得することもできます。 詳しくは、「リソース管理システム」をご覧ください。

Stretch プロパティは、ブラシとして使用する場合のイメージの適用方法に重要です。 一部の画像は、Fill 動作を使用して特定の Brush プロパティに適用されたとおりに拡大すると適切に見えますが、他の画像はストレッチや拡大縮小が適切ではなく、None または Uniform for Stretch の値が必要な場合があります。 Stretch のさまざまな値を試して、UI に適用した場合に最適な動作を確認します。

画像ソースとスケーリング

Windows 8スケーリング時にアプリが適切に表示されるように、いくつかの推奨サイズでイメージ ソースを作成する必要があります。 ImageBrush に ImageSource を指定する場合は、現在のスケーリングに適したリソースを自動的に参照する名前付け規則を使用できます。 この名前付け規則の詳細や関連情報については、「クイック スタート: ファイルまたは画像リソースの使用」をご覧ください。

スケーリングの設計方法の詳細については、「 レイアウトとスケーリングの UX ガイドライン」を参照してください。

以前のバージョンの注意事項

Windows 8

Windows 8、ImageBrush がコントロールに適用される XAML スタイルまたはテンプレートの一部である場合、XAML 属性 URI 値からの ImageSource 解決に問題がありました。 コントロールの使用では、通常はアプリから取得されるスタイルまたはテンプレートに適したベース URI ではなく、コンポーネント固有のベース URI が使用される場合があります。 この問題は、Windows 8.1 以降で修正されています。ベース URI は、ベース URI を必要とするスコープに応じて、アプリ リソースまたはコンポーネント リソースに対して正しく決定されます。 Windows 8用にコンパイルされたアプリは、XAML URI が解決され、アプリに画像が表示される "間違った" 場所にイメージ ソース ファイルを配置することで、この動作の回避策を使用している可能性があります。 XAML を Windows 8 から Windows 8.1 に移行する場合は、XAML からスタイルまたはテンプレートで ImageBrush の使用状況をテストし、アプリのイメージ解像度がWindows 8.1で動作していることを確認する必要があります。 問題が発生した場合は、パッケージ内でイメージ ソース ファイルを移動して、新しい動作の正しいリソース スコープになるようにする必要があります。

Windows 8 用にコンパイルしたアプリは、Windows 8.1 上で実行しても Windows 8 のときと同じ動作になります。

コンストラクター

ImageBrush()

ImageBrush クラスの新しいインスタンスを初期化します。

プロパティ

AlignmentX

TileBrush 基本タイル内のコンテンツの水平方向の配置を取得または設定します。

(継承元 TileBrush)
AlignmentY

TileBrush 基本タイル内のコンテンツの垂直方向の配置を取得または設定します。

(継承元 TileBrush)
Dispatcher

このオブジェクトが関連付けられている CoreDispatcher を取得します。 CoreDispatcher は、コードが UI 以外のスレッドによって開始された場合でも、UI スレッド上の DependencyObject にアクセスできる機能を表します。

(継承元 DependencyObject)
ImageSource

この ImageBrush によって表示されるイメージ ソースを取得または設定します。 コードでは、 ImageSource サブクラス インスタンスでこれを設定します。XAML では、これを URI でイメージ ソース ファイルに設定します。

ImageSourceProperty

ImageSource 依存関係プロパティを識別します。

Opacity

ブラシの不透明度を取得または設定 します

(継承元 Brush)
RelativeTransform

相対座標を使用して、ブラシに適用される変換を取得または設定します。

(継承元 Brush)
Stretch

この TileBrush のコンテンツをタイルに合わせて拡張する方法を指定する値を取得または設定します。

(継承元 TileBrush)
Transform

ブラシに適用される変換を取得または設定します。

(継承元 Brush)

メソッド

ClearValue(DependencyProperty)

依存関係プロパティのローカル値をクリアします。

(継承元 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

依存関係プロパティに対して確立された基本値を返します。これは、アニメーションがアクティブでない場合に適用されます。

(継承元 DependencyObject)
GetValue(DependencyProperty)

DependencyObject から依存関係プロパティの現在の有効な値を返します。

(継承元 DependencyObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

アニメーション化できるプロパティを定義します。

(継承元 Brush)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

派生クラスでオーバーライドされると、アニメーション化できるプロパティを定義します。

(継承元 Brush)
ReadLocalValue(DependencyProperty)

ローカル値が設定されている場合は、依存関係プロパティのローカル値を返します。

(継承元 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

この DependencyObject インスタンスの特定の DependencyProperty に対する変更をリッスンするための通知関数を登録します。

(継承元 DependencyObject)
SetValue(DependencyProperty, Object)

DependencyObject の依存関係プロパティのローカル値を設定します。

(継承元 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback を呼び出して以前に登録した変更通知を取り消します。

(継承元 DependencyObject)

イベント

ImageFailed

イメージの取得または形式に関連するエラーがある場合に発生します。

ImageOpened

イメージ ソースがダウンロードされ、エラーなしでデコードされたときに発生します。 このイベントを使用して、イメージをレンダリングする前にイメージのサイズを決定できます。

適用対象

こちらもご覧ください