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 的最常见方法是将 XAML 元素定义为 ResourceDictionary 中的资源,然后稍后使用 {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 是最常见的 Brush 类型,用于许多可能的 UI 属性,这些属性使用 Brush 填充应用 UI 中对象的部分或全部可视区域。 使用 Brush 值的一些最常用的属性的示例包括: Control.Background、 Control.Foreground、 Shape.Fill、 Control.BorderBrush、 Panel.Background、 TextBlock.Foreground。
对于这些属性, null 值通常是可以接受的,并且结果没有呈现任何内容。 如果该元素与其他元素出现在同一坐标空间中,则属性(如 Background)的 null 值会导致该元素不注册以进行命中测试,并确定输入事件的源位置。 仅当 Brush 属性值为 null 以外的值会影响该点的呈现时,才能检测到 UI 坐标空间中该点上发生的任何指针事件、手势等。
可以创建使用 透明 值的 SolidColorBrush,尽管这不会在视觉上将任何更改应用于 UI (它是透明的) ,但可以检测该点以进行命中测试。 因此,这与具有 null 值的 Brush 属性不同。 透明画笔可用于使用矩形、边框或面板等元素截获命中测试的 UI 元素上的覆盖区域等技术。 如果下面的元素无法执行自己的命中测试,但仍希望检测输入事件,则可以执行此操作。 有关命中测试的详细信息,请参阅 鼠标交互的“命中测试”部分。
使用画笔的属性可以作为过渡或装饰动画的一部分进行动画处理。 通常不会对整个 SolidColorBrush 对象进行动画处理,必须使用离散 的对象 动画,这既不高效也不美观。 相反,使用属性目标来仅对 Color 值进行动画处理,使用可对 Color 值进行动画处理的专用动画类型之一。 这通常涉及是 .(SolidColorBrush.Color)
Storyboard.TargetProperty 值的一部分。 有关属性目标以及如何使用 SolidColorBrush 或其他 Brush 值对属性进行动画处理的详细信息,请参阅 情节提要动画。
SolidColorBrush 是一个可共享的对象,其他派生类型的 Brush (如 LinearGradientBrush 和 ImageBrush)也是。 因为它是可共享的,SolidColorBrush 有时在 XAML 中定义为 XAML ResourceDictionary 中的资源。 使用 XAML 中的可共享资源的优点是,只需创建一次值并将其应用于多个属性。
应用 UIElement.Opacity 值可以更改应用于对象的 SolidColorBrush 属性的颜色外观。 UIElement.Opacity 值可以是累积值,具体取决于重叠对象的布局。 仅当净 不透明度 值为 1 时,颜色才会按预期显示。 还有 一个 Brush.Opacity 属性,可以类似地影响明显的颜色。 Brush.Opacity 通常保留其默认值 1,除非为淡入或淡出效果特意对其进行动画处理。
画笔作为 XAML 资源
可在 XAML (SolidColorBrush、LinearGradientBrush、ImageBrush) 中声明的每个画笔类型都旨在定义为资源,以便你可以在整个应用中重复使用该画笔作为资源。 为 Brush 类型显示的 XAML 语法适用于将画笔定义为资源。 将画笔声明为资源时,还需要一个 x:Key 属性 ,稍后将使用该属性从其他 UI 定义中引用该资源。 有关 XAML 资源和如何使用 x:Key 属性的详细信息,请参阅 ResourceDictionary 和 XAML 资源引用。
将画笔声明为资源的优点是减少了构造 UI 所需的运行时对象数:画笔现在共享为对象图的多个部分提供值的通用资源。
如果查看Windows 运行时 XAML 控件的现有控件模板定义,你将看到模板广泛使用画笔资源。 其中许多资源是系统资源,它们使用 {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) |