ImageBrush.ImageSource 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定這個 ImageBrush所顯示的影像來源。 在程式碼中,您會使用 ImageSource 子類別實例來設定此專案,在 XAML 中,您會使用 URI 設定為影像來源檔案。
public:
property ImageSource ^ ImageSource { ImageSource ^ get(); void set(ImageSource ^ value); };
ImageSource ImageSource();
void ImageSource(ImageSource value);
public ImageSource ImageSource { get; set; }
var imageSource = imageBrush.imageSource;
imageBrush.imageSource = imageSource;
Public Property ImageSource As ImageSource
<ImageBrush ImageSource="imageUri"/>
屬性值
物件,代表影像來源,當影像來源套用至內容時,要由這個 ImageBrush 顯示。
備註
從映射來源檔案或資料流程設定影像來源原本就是非同步動作。 將來源設定為統一資源識別元 (URI) 無法解析為有效映射來源檔案的值,並不會擲回錯誤。 相反地,它會在ImageBrush上引發ImageFailed事件。 如果您想要確認影像來源檔案已正確載入,您可以處理 ImageOpened 以進行驗證,以及 ImageFailed 作為提供後援映射來源或重新編譯 UI 的方式。
在 XAML 中設定 ImageSource
您可以在 XAML 中設定此屬性,但在此情況下,您會將 ImageSource 屬性值設定為字串,代表統一資源識別項 (URI) 。 此行為依賴基礎類型轉換,以統一資源識別元 (URI) 處理字串,並呼叫 BitmapImage (Uri) 建構函式的內部對等專案。
如果 XAML 中的初始 ImageSource 屬性值未指定有效的來源,就會發生 ImageFailed 事件。 您可以使用相對路徑來參考您使用應用程式封裝的映射,或是絕對統一資源識別元 (URI) 來參考來自伺服器的映射。 如果您使用封裝為應用程式一部分的映射來源,通常會使用 ms-appx 或 ms-resource 配置 。
在程式碼中設定 ImageSource
如果您使用程式碼定義 ImageBrush,ImageBrush.ImageSource 在程式碼中需要 BitmapImage (不是統一資源識別項 (URI) ) 。 如果您的來源是資料流,請使用 SetSourceAsync 方法來初始化該值。 如果您的來源是統一資源識別項 (URI) 參考檔案,其中包含使用 ms-appx 或 ms-resource 配置的應用程式中的內容,請使用採用統一資源識別元 (URI) 的 BitmapImage 建構函式。 如果有任何與影像來源的抓取或解碼相關的時機問題,您也可以考慮處理 ImageOpened 事件,在這種情況下,您可能需要在影像來源可供使用前先顯示替代內容。 如需範例程式碼 ,請參閱 XAML 影像範例 。
如果您需要撰寫與 UI 中另一個物件相關的 URI,以協助界定資源要求的範圍,您有時可以使用 UI 中另一個物件上呼叫的 FrameworkElement.BaseUri 屬性。 這會提供基底 URI,也就是 XAML 頁面來自應用程式專案結構的位置。
注意
您可以使用自動處理來存取具有目前縮放比例和文化特性限定詞的非限定資源,也可以使用 ResourceManager 和 ResourceMap 搭配文化特性和規模限定詞,直接取得資源。 如需詳細資訊,請參閱資源管理系統。
影像來源和縮放
您應該以數個建議的大小建立影像來源,以確保應用程式在 Windows 8調整時看起來很美觀。 指定 ImageBrush 的 ImageSource時,您可以使用會自動參考目前縮放比例的正確資源命名慣例。 如需命名慣例的細節及其他資訊,請參閱快速入門:使用檔案或影像資源。
如需如何設計調整的詳細資訊,請參閱 版面配置和調整的 UX 指導方針。
如需應用程式資源以及如何封裝應用程式中映射來源的詳細資訊,請參閱 定義應用程式資源。
舊版的注意事項
Windows 8
如果ImageBrush是套用至控制項的 XAML 樣式或範本的一部分,Windows 8來自 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 的行為。