ImageBrush 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
使用影像繪製區域。 影像來源通常是從聯合攝影專家群組 (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 的用途包括文字的裝飾效果,或控制項或版面配置容器的影像背景。
在兩個主要案例中,使用 ImageBrush 而不是 Image 控制項 會很有用:
- 您想要使用影像繪製非矩形區域,例如橢圓形或框線
- 您想要使用單一 ImageBrush 以相同的影像繪製多個區域或 UIElement,這比使用多個 Image 控制項更有效率
如果您使用程式碼定義 ImageBrush,請使用預設建構函式,然後設定 ImageBrush.ImageSource。 這需要在程式碼中使用 BitmapImage (不是統一資源識別項 (URI) ) 。 如果您的來源是資料流,請使用 SetSourceAsync 方法來初始化該值。 如果您的來源是統一資源識別項 (URI) ,其中包含使用 ms-appx 或 ms-resource 配置之應用程式中的內容,請使用採用統一資源識別項的 BitmapImage 建構函式 (URI) 。 如果有任何與影像來源的抓取或解碼相關的時機問題,您也可以考慮處理 ImageOpened 事件,在這種情況下,您可能需要在影像來源可供使用前先顯示替代內容。 如需範例程式碼,請參閱 XAML 影像範例 。
注意
您可以使用自動處理來存取具有目前縮放與文化特性限定詞的未限定資源,也可以使用 ResourceManager 和 ResourceMap 搭配文化特性和縮放的限定詞,直接取得資源。 如需詳細資訊,請參閱資源管理系統。
Stretch屬性對於當做筆刷使用時的影像套用方式很重要。 當套用至具有Fill行為的特定Brush屬性時,某些影像看起來很適合,而其他影像則不會妥善縮放,而且可能需要None或Uniform for Stretch的值。 試驗 Stretch 的不同值,以查看套用至 UI 時,哪些行為最美觀。
影像來源和縮放
您應該以數個建議的大小建立映射來源,以確保您的應用程式在調整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 的行為。
建構函式
ImageBrush() |
初始化 ImageBrush 類別的新實例。 |
屬性
AlignmentX |
取得或設定 TileBrush 基底圖格中內容的水準對齊方式。 (繼承來源 TileBrush) |
AlignmentY |
取得或設定 TileBrush 基底圖格中內容的垂直對齊方式。 (繼承來源 TileBrush) |
Dispatcher |
取得這個 物件相關聯的 CoreDispatcher 。 CoreDispatcher代表可在 UI 執行緒上存取DependencyObject的功能,即使程式碼是由非 UI 執行緒起始也一樣。 (繼承來源 DependencyObject) |
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 |
發生于下載並解碼影像來源時,不會失敗。 您可以使用此事件來判斷影像的大小,再轉譯影像。 |