ImageBrush 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
用畫面描繪一個區域。 影像來源通常來自如聯合攝影專家組(JPEG)等檔案格式。
public ref class ImageBrush sealed : TileBrush
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 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.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class ImageBrush : TileBrush
Public NotInheritable Class ImageBrush
Inherits TileBrush
<ImageBrush .../>
- 繼承
- 屬性
範例
這個 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 的用途包括文字裝飾效果,或用於控制項或版面容器的影像背景。
在兩種主要情境下,使用 ImageBrush 代替 Image 控制 項很有用:
- 你想在非長方形區域上繪製,例如橢圓或邊框並附上圖像
- 你想用一個 ImageBrush 來繪製多個區域或 UIElements 的同一張圖片,這比使用多個 Image 控制項更有效率
如果你用程式碼定義 ImageBrush,請使用預設建構子,然後設定 ImageBrush.ImageSource。 這需要在程式碼中使用 點圖影像(BitmapImage ,而非統一資源識別碼(URI))。 如果您的來源是資料流,則使用 SetSourceAsync 方法初始化該值。 如果你的來源是統一資源識別碼(URI),其中包含應用程式中使用 ms-appx 或 ms-resource 方案的內容,請使用採用統一資源識別碼(URI)的 BitmapImage 建構器。 如果有任何與影像來源的擷取或解碼相關的時機問題,您也可以考慮處理 ImageOpened 事件,在這種情況下,您可能需要在影像來源可供使用前先顯示替代內容。 請參考 XAML 圖片範例 程式碼。
Note
你可以使用自動處理來存取帶有當前規模與文化限定條件的未合格資源,或使用 ResourceManager 和 ResourceMap 的文化與規模限定條件直接取得資源。 如需詳細資訊,請參閱資源管理系統。
拉伸特性對於影像作為畫筆的應用方式非常重要。 有些影像在拉伸後,套用特定的筆刷屬性並搭配填充行為看起來不錯,而其他影像則不佳,拉伸或縮放效果不佳,可能需要將拉伸值設為 None 或 Uniform。 試著調整不同的 Stretch 值,看看哪種行為在 UI 上看起來最好。
影像來源和縮放比例
你應該建立多個建議大小的圖片來源,確保你的應用程式在 Windows 8 放大時看起來很棒。 在指定 ImageBrush 的 ImageSource 時,可以使用命名慣例,自動參考當前縮放的正確資源。 有關命名慣例的詳細資料和更多資訊,請參閱快速入門:使用檔案或影像資源。
想了解更多如何設計縮放的資訊,請參閱版 面與縮放的使用者體驗指引。
建構函式
| 名稱 | Description |
|---|---|
| ImageBrush() |
初始化一個新的 ImageBrush 類別實例。 |
屬性
| 名稱 | Description |
|---|---|
| AlignmentX |
取得或設定 TileBrush 基礎圖塊中內容的水平對齊。 (繼承來源 TileBrush) |
| AlignmentY |
取得或設定 TileBrush 基礎圖塊中內容的垂直對齊。 (繼承來源 TileBrush) |
| Dispatcher |
它總是在 Windows 應用程式 SDK 應用程式中回傳 |
| DispatcherQueue |
得到 |
| ImageSource |
取得或設定由此 ImageBrush 顯示的影像來源。 在程式碼中,你用 ImageSource 子類別實例來設定,在 XAML 裡則用 URI 把它設成影像原始碼檔案。 |
| ImageSourceProperty |
識別 ImageSource 依賴屬性。 |
| Opacity |
取得或設定 筆刷的不透明度程度。 (繼承來源 Brush) |
| RelativeTransform |
取得或設定使用相對座標套用到筆刷上的轉換。 (繼承來源 Brush) |
| Stretch |
取得或設定一個值,指定該 TileBrush 的內容如何拉伸以符合其圖塊。 (繼承來源 TileBrush) |
| Transform |
取得或設定套用到畫筆上的轉換。 (繼承來源 Brush) |
方法
| 名稱 | Description |
|---|---|
| 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) |
事件
| 名稱 | Description |
|---|---|
| ImageFailed |
當影像檢索或格式相關錯誤時,會發生這種情況。 |
| ImageOpened |
當映像檔原始碼下載並解碼且無故障時會發生。 你可以利用這個事件來判斷影像的大小,然後再渲染它。 |