ImageBrush クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
イメージで領域を塗りつぶします。 通常、画像ソースは、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 .../>
- 継承
- 属性
Windows の要件
デバイス ファミリ |
Windows 10 (10.0.10240.0 で導入)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0 で導入)
|
例
この XAML の例では、TextBlock の Foreground プロパティを 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 の用途には、テキストの装飾効果や、コントロールまたはレイアウト コンテナーの画像背景が含まれます。
次の 2 つのメインシナリオでは、Image コントロールの代わりに ImageBrush を使用すると便利です。
- 楕円や境界線などの四角形以外の領域をイメージで塗りつぶす場合
- 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 イメージのサンプル 」を参照してください。
注意
現在のスケール修飾子とカルチャ修飾子を使用して非修飾リソースにアクセスする場合は自動処理を使用できます。また、 ResourceManager と ResourceMap をカルチャとスケールの修飾子と共に使用してリソースを直接取得することもできます。 詳しくは、「リソース管理システム」をご覧ください。
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) |
メソッド
イベント
ImageFailed |
イメージの取得または形式に関連するエラーがある場合に発生します。 |
ImageOpened |
イメージ ソースがダウンロードされ、エラーなしでデコードされたときに発生します。 このイベントを使用して、イメージをレンダリングする前にイメージのサイズを決定できます。 |