情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

ImageBrush.ImageSource Property

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

構文


public ImageSource ImageSource { get; set; }


<ImageBrush ImageSource="imageUri"/>

XAML Values

imageUri

イメージ ファイルを参照する URI。

プロパティ値

型: ImageSource

コンテンツに適用される場合にこの ImageBrush で表示される、イメージ ソースを表すオブジェクト。

解説

イメージ ソース ファイルまたはストリームからのイメージ ソースの設定は、本質的に非同期アクションです。有効なイメージ ソース ファイルに解決できない URI (Uniform Resource Identifier) 値にソースを設定してもエラーはスローされません。代わりに、ImageBrushImageFailed イベントが発生します。イメージのソース ファイルが正常に読み込まれたことを検証するには、検証のための ImageOpenedImageFailed を処理してフォールバックのイメージ ソースを提供するか、UI を再作成できます。

XAML での ImageSource の設定

XAML 内でこのプロパティを設定することもできますが、この場合は ImageSource 属性の値を、URI を表す文字列として設定することができます。この動作は、文字列を URI として処理し BitmapImage(Uri) と同等な内部コンストラクターを呼び出す、基になる型変換に依存します。

XAML の ImageSource 属性の初期値に有効なソースが指定されていないと、ImageFailed イベントが発生する場合があります。 相対パスを使用して、アプリにパッケージングしたイメージを参照できます。または、絶対 URI を使用して、サーバーのイメージを参照できます。アプリの一部としてパッケージ化されたイメージ ソースを使用する場合は、通常、ms-appx スキームまたは ms-resource スキームのいずれかを使用します。

コードでの ImageSource の設定

コードを使用して ImageBrush を定義する場合、ImageBrush.ImageSource のコードには BitmapImage (URI ではありません) が必要です。ソースがストリームの場合、SetSourceAsync メソッドを使用して値を初期化します。ソースが、ms-appx または ms-resource のスキームを使用するコンテンツをアプリケーションに含めている、ファイルを参照する URI である場合は、URI を受け取る BitmapImage コンストラクターを使用します。また、イメージ ソースの取得またはデコードにタイミングの問題があり、イメージ ソースが使用可能になるまで代替のコンテンツを表示する必要がある場合は、ImageOpened イベントを処理することもできます。コード例については、「XAML イメージのサンプル」を参照してください。

リソース要求を限定するために、UI の他のオブジェクトに対して相対的な URI を作成する必要がある場合は、FrameworkElement.BaseUri プロパティを、UI の他のオブジェクトで呼び出されたときに使用できることがあります。アプリのプロジェクト構造内の XAML ページのある基本 URI を提供します。

メモ  現在の測定単位修飾子とカルチャ修飾子を使用する非修飾リソースを自動的に処理すること、またはカルチャと測定単位に関する修飾子を指定して ResourceManagerResourceMap を使用し、リソースを直接取得することができます。詳細については、「リソース管理システム」を参照してください。

イメージ ソースとスケーリング

Windows 8 で拡大縮小したときにアプリがきれいに表示されるように、複数の推奨サイズでイメージ ソースを作成する必要があります。ImageBrushImageSource を指定するとき、現在のスケーリングの正しいリソースを自動的に参照する名前付け規則を使用できます。名前付け規則などの詳細情報については、「クイックスタート: ファイルまたは画像リソースの使用」を参照してください。

スケーリングのための設計方法の詳細については、「ピクセル密度に合わせたスケーリングのガイドライン」を参照してください。

アプリ リソースの詳細、およびイメージ ソースをアプリ パッケージにパッケージ化する方法の詳細については、「Defining app resources (アプリ リソースの定義)」を参照してください。

Windows 8 の動作

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

Windows 8 用にコンパイルされ Windows 8.1 で実行されるアプリケーションでは、引き続き Windows 8 の動作が使用されます。

要件

最小限サポートされるクライアント

Windows 8

最小限サポートされるサーバー

Windows Server 2012

名前空間

Windows.UI.Xaml.Media
Windows::UI::Xaml::Media [C++]

メタデータ

Windows.winmd

参照

ImageBrush
BitmapImage
Image
クイック スタート: Image と ImageBrush

 

 

表示:
© 2014 Microsoft