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 以相同的影像繪製多個區域或 UIElement,這比使用多個 影像 控件更有效率
如果您使用程式代碼定義 ImageBrush,請使用預設建構函式,然後設定 ImageBrush.ImageSource。 這需要 位圖Image (不是程序代碼中的統一資源標識碼 (URI) ) 。 如果您的來源是資料流,請使用 SetSourceAsync 方法來初始化該值。 如果您的來源是統一資源標識碼 (URI) ,其中包含應用程式中使用 ms-appx 或 ms-resource 配置的內容,請使用採用統一資源標識碼 (URI) 的 BitmapImage 建構函式。 如果有任何與影像來源的抓取或解碼相關的時機問題,您也可以考慮處理 ImageOpened 事件,在這種情況下,您可能需要在影像來源可供使用前先顯示替代內容。 如需範例程式代碼 ,請參閱 XAML 影像範例 。
注意
您可以使用自動處理來存取具有目前縮放比例和文化特性限定符的非限定資源,也可以使用 ResourceManager 和 ResourceMap 搭配文化特性和規模限定符,直接取得資源。 如需詳細資訊,請參閱資源管理系統。
Stretch 屬性對於當做筆刷使用時如何套用影像很重要。 某些影像在套用至具有 Fill 行為的特定 Brush 屬性時顯示良好,而其他影像則不會正常縮放,而且可能需要 None 或 Uniform for Stretch 的值。 實驗 Stretch 的不同值,以查看套用至 UI 時,哪些行為看起來最好。
影像來源和縮放
您應該以數個建議的大小建立影像來源,以確保應用程式在 Windows 8 調整時看起來很美觀。 指定 ImageBrush 的 ImageSource 時,您可以使用會自動參考目前縮放比例的正確資源命名慣例。 如需命名慣例的細節及其他資訊,請參閱快速入門:使用檔案或影像資源。
如需如何設計調整的詳細資訊,請參閱 版面配置和調整的UX指導方針。
建構函式
ImageBrush() |
初始化 ImageBrush 類別的新實例。 |
屬性
AlignmentX |
取得或設定 TileBrush 基底圖格中內容的水準對齊方式。 (繼承來源 TileBrush) |
AlignmentY |
取得或設定 TileBrush 基底圖格中內容的垂直對齊方式。 (繼承來源 TileBrush) |
Dispatcher |
一律會在 |
DispatcherQueue |
|
ImageSource |
取得或設定這個 ImageBrush 所顯示的影像來源。 在程式代碼中,您會使用 ImageSource 子類別實例來設定此專案,在 XAML 中,您會使用 URI 設定為影像來源檔案。 |
ImageSourceProperty |
識別 ImageSource 相依性屬性。 |
Opacity |
取得或設定 Brush 不透明度的程度。 (繼承來源 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 |
發生於下載並譯碼影像來源時,不會失敗。 您可以在轉譯影像之前,使用此事件來判斷影像的大小。 |