ImageBrush 类

定义

使用图像绘制区域。 图像源通常从文件格式(如联合摄影专家组 (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 .../>
继承
Object Platform::Object IInspectable DependencyObject Brush TileBrush ImageBrush
属性

Windows 要求

设备系列
Windows 10 (在 10.0.10240.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)

示例

此 XAML 示例演示如何将 TextBlockForeground 属性设置为 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 的用途包括文本的装饰效果,或控件或布局容器的图像背景。

在两种main方案中,使用 ImageBrush 而不是 Image 控件很有用:

  1. 你想要使用图像绘制非矩形区域,例如椭圆或边框
  2. 你想要使用单个 ImageBrush 绘制多个区域或同一图像的 UIElement,这比使用多个 Image 控件更高效

如果使用代码定义 ImageBrush,请使用默认构造函数,然后设置 ImageBrush.ImageSource。 这需要 位图图像 (而不是代码中的统一资源标识符 (URI) ) 。 如果源是一个流,请使用 SetSourceAsync 方法来初始化该值。 如果源是统一资源标识符 (URI) ,其中包括应用中使用 ms-appxms-resource 方案的内容,请使用采用统一资源标识符的 BitmapImage 构造函数 (URI) 。 如果在检索或解码图像资源时存在任何计时问题,而你可能在图像资源可用前需要使用替代内容用以显示,则还可以考虑处理 ImageOpened 事件。 有关示例代码 ,请参阅 XAML 图像示例

注意

可以使用自动处理来访问具有当前规模和区域性限定符的不限定资源,也可以使用 ResourceManagerResourceMap 以及区域性和缩放限定符来直接获取资源。 有关详细信息,请参阅资源管理系统

Stretch 属性对于用作画笔时如何应用图像非常重要。 一些图像在拉伸为“填充”行为应用于特定 Brush 属性时看起来不错,而其他图像的拉伸或缩放效果不佳,可能需要“无”“拉伸的统一”值。 试验 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

获取与此对象关联的 CoreDispatcherCoreDispatcher 表示可以访问 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

下载并解码映像源时发生,但未失败。 在呈现图像之前,可以使用此事件来确定图像的大小。

适用于

另请参阅