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

Foi útil?

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" />
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top