Question

J'ai la déclaration suivante ImageBrush que je veux utiliser pour dessiner l'arrière-plan d'une fenêtre.

     <ImageBrush x:Key="Fondo" 
      ImageSource="Fondo.png"        
      Viewport="0,0,0.1,0.1" TileMode="Tile"/>

Si je mets à l'aide d'un StaticResource lier à la propriété en arrière-plan de la fenêtre de la brosse est rendu correctement, mais l'image est mis à l'échelle. C'est un comportement que je ne veux pas, je veux l'application à utiliser l'image à sa résolution native et répéter que nécessaire pour remplir le fond de la fenêtre, sans aucune mise à l'échelle. Je ne sais pas ce que je fais mal.

L'image que je utilise est 200px de large et 200px de hauteur. Les valeurs de viewport J'y ai été deviné, mais il ne fonctionnait pas avant que je l'ai fait.

Merci pour toute aide

EDIT : Correction d'une contradiction dans la question

Était-ce utile?

La solution

trouvé le problème. L'image est une image PNG qui a été conçu pour une résolution de 72 dpi. Par conséquent WPF a été mise à l'échelle pour correspondre à la résolution 96 dpi standard. Le problème n'a pas été avec le code.

Autres conseils

Si vous connaissez la résolution de l'image source, vous pouvez définir les valeurs ViewBox et viewport comme des pixels. Set ViewBoxUnits et ViewPortUnits à absolu et vous devriez être en mesure d'obtenir l'effet que vous voulez.

<ImageBrush ViewBox="0,0,200,200" 
ViewBoxUnits="Absolute"
ViewPort="0,0,200,200"
ViewPortUnits="Absolute" />
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top