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 показано, как задать для свойства Foregroundобъекта TextBlock значение 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 относятся декоративные эффекты для текста или фон изображения для элементов управления или контейнеров макета.

Полезно использовать ImageBrush вместо элемента управления Image в двух сценариях main:

  1. Вы хотите закрасить непрямоугольную область, например эллипс или границу изображением
  2. Вы хотите использовать один ImageBrush для закраски нескольких областей или элементов UIElement одним и тем же изображением, что более эффективно, чем использование нескольких элементов управления Image

Если вы определяете ImageBrush с помощью кода, используйте конструктор по умолчанию, а затем задайте ImageBrush.ImageSource. Для этого требуется BitmapImage (а не универсальный код ресурса (URI)) в коде. Если источником является поток, для инициализации значения используйте метод SetSourceAsync. Если источником является универсальный код ресурса (URI), который включает в себя содержимое приложения, использующего схемы ms-appx или ms-resource , используйте конструктор BitmapImage , который принимает универсальный код ресурса (URI). Также можно рассмотреть вариант обработки события ImageOpened, если существуют некоторые временные проблемы с получением или декодированием источника изображения, при которых может понадобиться отображать альтернативное содержимое до тех пор, пока источник изображения не станет доступным. Пример кода см . в разделе Пример изображений XAML .

Примечание

Вы можете использовать автоматическую обработку для доступа к неквалифицированным ресурсам с помощью текущих квалификаторов масштабирования и языка и региональных параметров или ResourceManager и ResourceMap с квалификаторами для языка и региональных параметров и масштаба, чтобы получить ресурсы напрямую. Подробнее см. в разделе Система управления ресурсами.

Свойство Stretch важно для применения изображения при использовании в качестве кисти. Некоторые изображения хорошо выглядят, если они растягиваются, как применяется к определенному свойству Brush с поведением Заливка , в то время как другие изображения не растягиваются и не масштабируются и могут требовать значения None или Uniform для Stretch. Поэкспериментируйте с различными значениями для Stretch , чтобы узнать, какое поведение лучше всего выглядит при применении к пользовательскому интерфейсу.

Исходные изображения и масштабирование

Следует создавать источники изображений в нескольких рекомендуемых размерах, чтобы приложение выглядело отлично при его масштабировании Windows 8. При указании ImageSource для ImageBrush можно использовать соглашение об именовании, которое автоматически будет ссылаться на правильный ресурс для текущего масштабирования. Особенности контекста именования и дополнительные сведения описываются в разделе Краткое руководство: использование файловых и графических ресурсов.

Дополнительные сведения о проектировании для масштабирования см. в разделе Рекомендации по пользовательскому интерфейсу для макета и масштабирования.

Примечания для предыдущих версий

Windows 8

Windows 8 возникла проблема с разрешением ImageSource из значения URI атрибута XAML, если ImageBrush является частью стиля или шаблона XAML, применяемого к элементу управления. При использовании элемента управления иногда используется базовый URI для конкретного компонента, а не соответствующий базовый URI для стиля или шаблона, который обычно поступает из приложения. Проблема устранена, начиная с Windows 8.1; базовый URI правильно определяется для ресурсов приложения или ресурсов компонентов в зависимости от область, которому требуется базовый URI. Приложения, скомпилированные для Windows 8, могли использовать обходные пути для этого поведения, поместив исходные файлы изображений в "неправильное" место, где будет разрешаться URI XAML и приложение будет отображать изображения. Если вы переносите XAML с Windows 8 на Windows 8.1 следует протестировать использование ImageBrush в стиле или шаблоне из XAML и убедиться, что разрешение изображения в приложении работает с Windows 8.1. Если у вас возникла проблема, следует переместить исходные файлы изображений в пакет, чтобы они были в правильном ресурсе область для нового поведения.

Приложения, которые скомпилированы для Windows 8, но выполняются в Windows 8.1, продолжают использовать правила, действующие в Windows 8.

Конструкторы

ImageBrush()

Инициализирует новый экземпляр класса ImageBrush .

Свойства

AlignmentX

Возвращает или задает горизонтальное выравнивание содержимого в базовой плитке TileBrush .

(Унаследовано от TileBrush)
AlignmentY

Возвращает или задает вертикальное выравнивание содержимого в базовой плитке TileBrush .

(Унаследовано от TileBrush)
Dispatcher

Возвращает объект CoreDispatcher , с которым связан этот объект. CoreDispatcher представляет собой средство, которое может получить доступ к DependencyObject в потоке пользовательского интерфейса, даже если код инициируется потоком, не относящегося к пользовательскому интерфейсу.

(Унаследовано от DependencyObject)
ImageSource

Возвращает или задает источник изображения, отображаемый этим ImageBrush. В коде, который вы задали с помощью экземпляра подкласса ImageSource , в XAML вы задали его с помощью универсального кода ресурса (URI) для исходного файла изображения.

ImageSourceProperty

Определяет свойство зависимости ImageSource .

Opacity

Возвращает или задает степень непрозрачности кисти.

(Унаследовано от 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)

Регистрирует функцию уведомления для прослушивания изменений определенного DependencyProperty в этом экземпляре DependencyObject .

(Унаследовано от DependencyObject)
SetValue(DependencyProperty, Object)

Задает локальное значение свойства зависимостей для Объекта DependencyObject.

(Унаследовано от DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Отменяет уведомление об изменениях, которое было ранее зарегистрировано путем вызова Метода RegisterPropertyChangedCallback.

(Унаследовано от DependencyObject)

События

ImageFailed

Возникает при возникновении ошибки, связанной с извлечением изображения или форматированием.

ImageOpened

Происходит при загрузке и декодировании источника изображения без сбоев. Это событие можно использовать для определения размера изображения перед его отрисовкой.

Применяется к

См. также раздел