ImageBrush Classe

Definição

Pinta uma área com uma imagem. Normalmente, a origem da imagem é obtida de formatos de arquivo, como JPEG (Joint Photo Experts Group).

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 .../>
Herança
Object Platform::Object IInspectable DependencyObject Brush TileBrush ImageBrush
Atributos

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Exemplos

Este exemplo XAML mostra como definir a propriedade Foreground de um TextBlock como um ImageBrush, cuja imagem é usada como o preenchimento do texto renderizado por 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>
Um ImageBrush aplicado ao texto

Comentários

Um ImageBrush é um tipo de pincel que define seu conteúdo como uma imagem que pode ser alongada e alinhada opcionalmente. Os usos para um ImageBrush incluem efeitos decorativos para texto ou planos de fundo de imagem para controles ou contêineres de layout.

É útil usar um ImageBrush em vez de um controle Image em dois cenários de main:

  1. Você deseja pintar uma área não retangular, como uma elipse ou borda com uma imagem
  2. Você deseja usar um único ImageBrush para pintar várias áreas ou UIElements com a mesma imagem, o que é mais eficiente do que usar vários controles image

Se você definir um ImageBrush usando código, use o construtor padrão e defina ImageBrush.ImageSource. Isso requer um BitmapImage (não um URI (Uniform Resource Identifier)) no código. Se a sua origem for um fluxo, use o método SetSourceAsync para iniciar o valor. Se sua origem for um URI (Uniform Resource Identifier), que inclui conteúdo em seu aplicativo que usa os esquemas ms-appx ou ms-resource , use o construtor BitmapImage que usa um URI (Uniform Resource Identifier). Você também pode considerar a manipulação do evento ImageOpened se houver algum problema de temporização com a recuperação ou decodificação da origem da imagem, em que você pode precisar de conteúdo alternativo para exibir até que a origem da imagem esteja disponível. Confira Exemplo de imagens XAML para obter um código de exemplo.

Observação

Você pode usar o tratamento automático para acessar recursos não qualificados com qualificadores de escala e cultura atuais ou usar ResourceManager e ResourceMap com qualificadores para cultura e escala para obter os recursos diretamente. Para saber mais, veja Sistema de gerenciamento de recursos.

A propriedade Stretch é importante para como a imagem é aplicada quando usada como um pincel. Algumas imagens parecem boas quando alongadas conforme aplicado a uma determinada propriedade Brush com o comportamento Fill , enquanto outras imagens não alongam ou dimensionam bem e podem exigir um valor de None ou Uniform para Stretch. Experimente valores diferentes para o Stretch para ver qual comportamento parece melhor quando aplicado à interface do usuário.

Origens de imagens e dimensionamento

Você deve criar suas fontes de imagem em vários tamanhos recomendados, para garantir que seu aplicativo fique ótimo quando Windows 8 dimensioná-lo. Ao especificar um ImageSource para um ImageBrush, você pode usar uma convenção de nomenclatura que referenciará automaticamente o recurso correto para o dimensionamento atual. Para saber mais sobre a convenção de nomenclatura, confira Início rápido: usando recursos de arquivo ou imagem.

Para obter mais informações sobre como projetar para dimensionamento, consulte Diretrizes de experiência do usuário para layout e dimensionamento.

Observações para versões anteriores

Windows 8

Windows 8 teve um problema com a resolução ImageSource de um valor de URI de atributo XAML, se ImageBrush fizer parte de um estilo XAML ou modelo aplicado a um controle. Às vezes, o uso do controle usaria um URI base específico do componente em vez do URI base apropriado para o estilo ou modelo, que geralmente vem do aplicativo. O problema foi corrigido começando com Windows 8.1; o URI base é determinado corretamente para recursos de aplicativo ou recursos de componente, dependendo do escopo que precisa do URI base. Os aplicativos que foram compilados para Windows 8 podem ter usado soluções alternativas para esse comportamento, colocando seus arquivos de origem de imagem no lugar "errado", onde o URI XAML resolve e o aplicativo mostraria as imagens. Se você estiver migrando XAML de Windows 8 para Windows 8.1 deverá testar os usos do ImageBrush em um estilo ou modelo do XAML e verificar se a resolução de imagem em seu aplicativo está funcionando com Windows 8.1. Se você tiver um problema, mova os arquivos de origem da imagem dentro do pacote para que eles estejam no escopo de recurso correto para o novo comportamento.

Os aplicativos que foram compilados para Windows 8, mas estão sendo executados no Windows 8.1, continuam a adotar o comportamento do Windows 8.

Construtores

ImageBrush()

Inicializa uma nova instância da classe ImageBrush .

Propriedades

AlignmentX

Obtém ou define o alinhamento horizontal do conteúdo no bloco base TileBrush .

(Herdado de TileBrush)
AlignmentY

Obtém ou define o alinhamento vertical do conteúdo no bloco base TileBrush .

(Herdado de TileBrush)
Dispatcher

Obtém o CoreDispatcher ao qual esse objeto está associado. O CoreDispatcher representa uma instalação que pode acessar o DependencyObject no thread da interface do usuário, mesmo que o código seja iniciado por um thread que não seja da interface do usuário.

(Herdado de DependencyObject)
ImageSource

Obtém ou define a origem da imagem exibida por este ImageBrush. No código, você define isso com uma instância de subclasse ImageSource , em XAML, você define isso com um URI como um arquivo de origem de imagem.

ImageSourceProperty

Identifica a propriedade de dependência ImageSource .

Opacity

Obtém ou define o grau de opacidade de um Pincel.

(Herdado de Brush)
RelativeTransform

Obtém ou define a transformação que é aplicada ao pincel, usando coordenadas relativas.

(Herdado de Brush)
Stretch

Obtém ou define um valor que especifica como o conteúdo desse TileBrush se estende para ajustar seus blocos.

(Herdado de TileBrush)
Transform

Obtém ou define a transformação que é aplicada ao pincel.

(Herdado de Brush)

Métodos

ClearValue(DependencyProperty)

Limpa o valor local de uma propriedade de dependência.

(Herdado de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Retorna qualquer valor base estabelecido para uma propriedade de dependência, que se aplicaria nos casos em que uma animação não está ativa.

(Herdado de DependencyObject)
GetValue(DependencyProperty)

Retorna o valor efetivo atual de uma propriedade de dependência de um DependencyObject.

(Herdado de DependencyObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Define uma propriedade que pode ser animada.

(Herdado de Brush)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

Quando substituído em uma classe derivada, define uma propriedade que pode ser animada.

(Herdado de Brush)
ReadLocalValue(DependencyProperty)

Retorna o valor local de uma propriedade de dependência, se um valor local for definido.

(Herdado de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra uma função de notificação para escutar alterações em uma DependencyProperty específica nessa instância dependencyObject .

(Herdado de DependencyObject)
SetValue(DependencyProperty, Object)

Define o valor local de uma propriedade de dependência em um DependencyObject.

(Herdado de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela uma notificação de alteração que foi registrada anteriormente chamando RegisterPropertyChangedCallback.

(Herdado de DependencyObject)

Eventos

ImageFailed

Ocorre quando há um erro associado à recuperação ou ao formato da imagem.

ImageOpened

Ocorre quando a origem da imagem é baixada e decodificada sem falha. Você pode usar esse evento para determinar o tamanho de uma imagem antes de renderizá-la.

Aplica-se a

Confira também