Por que meu ImageBrush escalar uma imagem de Azulejo?
-
11-09-2019 - |
Pergunta
Eu tenho a seguinte declaração ImageBrush que eu quero usar para desenhar o plano de fundo de uma janela.
<ImageBrush x:Key="Fondo"
ImageSource="Fondo.png"
Viewport="0,0,0.1,0.1" TileMode="Tile"/>
Se eu defini-lo utilizando uma ligação à propriedade de fundo da janela do pincel é processado corretamente StaticResource, mas a imagem está sendo escalado. Este é um comportamento que eu não quero, eu quero o aplicativo para usar a imagem em sua resolução nativa e repeti-lo conforme necessário para encher o fundo da janela, sem qualquer tipo de escala. Eu não sei o que estou fazendo de errado.
A imagem que estou usando é 200px de largura e 200px de altura. Os valores da janela de visualização que tenho lá foram adivinhou, mas não estava funcionando antes de eu fazer isso.
Obrigado por qualquer ajuda
Editar : Corrigido uma contradição na questão
Solução
Encontrado o problema. A imagem era um png que foi projetado para uma resolução de 72 dpi. Portanto WPF foi dimensioná-lo para corresponder à resolução de 96 dpi padrão. O problema não era com o código.
Outras dicas
Se você sabe que a resolução da imagem de origem, você pode definir os valores negatoscópio e ViewPort como pixels. Definir ViewBoxUnits e ViewportUnits a absoluta e você deve ser capaz de alcançar o efeito que você deseja.
<ImageBrush ViewBox="0,0,200,200"
ViewBoxUnits="Absolute"
ViewPort="0,0,200,200"
ViewPortUnits="Absolute" />