SolidColorBrush 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
public ref class SolidColorBrush sealed : Brush
/// [Microsoft.UI.Xaml.Markup.ContentProperty(Name="Color")]
/// [Windows.Foundation.Metadata.Activatable(Microsoft.UI.Xaml.Media.ISolidColorBrushFactory, 65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [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 SolidColorBrush final : Brush
[Microsoft.UI.Xaml.Markup.ContentProperty(Name="Color")]
[Windows.Foundation.Metadata.Activatable(typeof(Microsoft.UI.Xaml.Media.ISolidColorBrushFactory), 65536, "Microsoft.UI.Xaml.WinUIContract")]
[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 SolidColorBrush : Brush
Public NotInheritable Class SolidColorBrush
Inherits Brush
<SolidColorBrush .../>
-or-
<SolidColorBrush>colorString</SolidColorBrush>
- or -
<SolidColorBrush Color="predefinedColorName"/>
- or -
<SolidColorBrush Color="#rgb"/>
- or -
<SolidColorBrush Color="#argb"/>
- or -
<SolidColorBrush Color="#rrggbb"/>
- or -
<SolidColorBrush Color="#aarrggbb"/>
- or -
<SolidColorBrush Color="sc#scR,scG,scB"/>
- or -
<SolidColorBrush Color="sc#scA,scR,scG,scB"/>
- 繼承
- 屬性
範例
使用 SolidColorBrush 最常見的方法是在 ResourceDictionary 中將 XAML 元素定義為資源,然後使用 {StaticResource} 標記延伸或 {ThemeResource} 標記延伸,稍後從 UI 定義、樣式或範本的其他部分參考該資源。
<ResourceDictionary>
...
<SolidColorBrush x:Key="BlockBackgroundBrush" Color="#FF557EB9"/>
...
</ResourceDictionary>
<Border Background="{StaticResource BlockBackgroundBrush}"
Width="80" Height="80"/>
有數種不同的方式可將 SolidColorBrush 定義為內嵌 UI 值,而不是資源:
<Canvas
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This rectangle's fill is painted with a red SolidColorBrush,
described using a named color. -->
<Rectangle Width="100" Height="100" Fill="Red" />
</Canvas>
<Canvas
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This rectangle's fill is painted with a red SolidColorBrush,
described using a named color. -->
<Rectangle Width="100" Height="100" Fill="Red" />
</Canvas>
- 藉由指定紅色、綠色和藍色的數量,以在32位調色盤內建立色彩,以結合成單一純色。
<Canvas
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This rectangle's fill is painted with a red SolidColorBrush,
described using a named color. -->
<Rectangle Width="100" Height="100" Fill="Red" />
</Canvas>
<Canvas
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This rectangle's fill is painted with a red SolidColorBrush,
described using a named color. -->
<Rectangle Width="100" Height="100" Fill="Red" />
</Canvas>
SolidColorBrush greenBrush = new SolidColorBrush(Colors.Green);
Windows::UI::Xaml::Media::SolidColorBrush greenBrush{ Windows::UI::Colors::Green() };
auto greenBrush = ref new SolidColorBrush(Colors::Green);
定義新 SolidColorBrush 物件的另一種方式是使用 FromArgb 靜態公用程式方法。 如果您想要的色彩沒有具名 的 Colors 值,這會很有用。
SolidColorBrush myBrush = new SolidColorBrush(Color.FromArgb(255, 20, 20, 90));
Windows::UI::Xaml::Media::SolidColorBrush myBrush{ Windows::UI::ColorHelper::FromArgb(255, 90, 200, 90) };
auto myBrush = ref new SolidColorBrush(ColorHelper::FromArgb(255, 90, 200, 90));
備註
SolidColorBrush 是最常用於許多可能 UI 屬性的 Brush 類型,這些屬性會使用 Brush 在應用程式 UI 中填滿部分或所有對象的視覺區域。 使用 Brush 值之一些最常用的屬性範例包括: Control.Background、 Control.Foreground、 Shape.Fill、 Control.BorderBrush、 Panel.Background、 TextBlock.Foreground。
對於這些屬性,通常可接受 Null 值,而且結果不會在該處呈現任何內容。 如果項目出現在與其他元素相同的座標空間中,則 Background 之類的屬性的 Null 值會導致該元素不註冊進行點擊測試,並判斷輸入事件的來源。 UI 座標空間中該點上發生的任何指標事件、手勢等等,只有在 Brush 屬性的值以外的值會影響該點的轉譯時,才能偵測到。
您可以建立使用 透明 值的 SolidColorBrush,雖然這不會以可視化方式將任何變更套用至 UI (它是透明的) ,但該點可偵測到以進行點擊測試。 因此,這與具有 Null 值的 Brush 屬性不同。 透明筆刷對於在UI元素上建立重疊區域等技術很有用,您可以在其中使用矩形、框線或面板等元素攔截點擊測試。 如果下方的元素無法執行自己的點擊測試,但您仍想要偵測輸入事件,您可能會這麼做。 如需點擊測試的詳細資訊,請參閱 滑鼠互動的一節。
使用筆刷的屬性可以在轉換或裝飾動畫中產生動畫效果。 您通常不會建立整個 SolidColorBrush 對象的動畫效果,您必須使用離散 的 Object 動畫,而且效率也不美觀。 相反地,您會使用屬性目標,只以 Color 值建立動畫效果,使用其中一種專用動畫類型來產生 Color 值動畫效果。 這通常牽涉到屬於 .(SolidColorBrush.Color)
Storyboard.TargetProperty 值的一部分。 如需屬性目標的詳細資訊,以及如何以動畫顯示使用 SolidColorBrush 或其他 Brush 值的屬性,請參閱 分鏡腳本動畫。
SolidColorBrush 是可共用的物件,如同 LinearGradientBrush 和 ImageBrush 等其他衍生的 Brush 類型。 因為它可共用 SolidColorBrush 有時會在 XAML 中定義為 XAML ResourceDictionary 中的資源。 從 XAML 使用可分享資源的優點是,您只會建立一次值,並將其套用至多個屬性。
套用 UIElement.Opacity 值可以變更套用至物件的 SolidColorBrush 屬性的色彩外觀。 UIElement.Opacity 值可以累加,視重迭的物件配置而定。 只有在 net Opacity 值為 1 時,色彩才會如預期般顯示。 另外還有 Brush.Opacity 屬性,可能會類似地影響明顯的色彩。 Brush.Opacity 通常會保留其預設值 1,除非刻意以動畫顯示淡入或淡出效果。
XAML 資源形式的筆刷
每個可以在 XAML (SolidColorBrush、LinearGradientBrush、ImageBrush) 中宣告的 Brush 類型,都是要定義為資源,以便在整個應用程式中重複使用該筆刷作為資源。 針對 Brush 類型顯示的 XAML 語法適用於將筆刷定義為資源。 當您將筆刷宣告為資源時,您也需要 x:Key 屬性 ,稍後您將用來從其他 UI 定義參考該資源。 如需 XAML 資源及如何使用 x:Key 屬性的詳細資訊,請參閱 ResourceDictionary 和 XAML 資源參考。
將筆刷宣告為資源的優點是可減少建構 UI 所需的運行時間物件數目:筆刷現在會共用為物件圖形多個部分提供值的通用資源。
如果您查看 xaml 控件的現有控件範本定義 Windows 執行階段,您會看到範本會廣泛地使用筆刷資源。 其中許多資源都是系統資源,而且會針對資源參考使用 {ThemeResource} 標記延伸 ,而不是 {StaticResource} 標記延伸。 如需如何在您自己的控件範本 XAML 中使用系統資源筆刷的詳細資訊,請參閱 XAML 主題資源。
建構函式
SolidColorBrush() |
初始化 SolidColorBrush 類別的新實例,不含色彩。 |
SolidColorBrush(Color) |
使用指定的 Color,初始化 SolidColorBrush 類別的新實例。 |
屬性
Color |
取得或設定這個 SolidColorBrush 的色彩。 |
ColorProperty |
識別 Color 相依性屬性。 |
Dispatcher |
一律會在 Windows 應用程式 SDK 應用程式中傳回 |
DispatcherQueue |
|
Opacity |
取得或設定 Brush 不透明度的程度。 (繼承來源 Brush) |
RelativeTransform |
取得或設定使用相對座標套用到筆刷的轉換。 (繼承來源 Brush) |
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) |