我有以下ImageBrush声明,我想用它来绘制窗口的背景。
<ImageBrush x:Key="Fondo"
ImageSource="Fondo.png"
Viewport="0,0,0.1,0.1" TileMode="Tile"/>
如果我使用StaticResource绑定到Window的Background属性来设置它,则刷子会正确渲染,但图像正在缩放。这是我不想要的行为,我希望应用程序以其原始分辨率使用图像,并根据需要重复它以填充窗口背景,而不需要任何缩放。我不知道我做错了什么。
我正在使用的图像宽200像素,高200像素。我猜到的视口值已被猜到,但在我这样做之前它没有工作。
感谢您的帮助
编辑:修正了问题中的矛盾
答案 0 :(得分:5)
发现问题。该图像是一个png,专为72 dpi分辨率设计。因此,WPF将其缩放以匹配标准的96 dpi分辨率。问题不在于代码。
答案 1 :(得分:2)
如果您知道源图像的分辨率,则可以将ViewBox和ViewPort值设置为像素。将ViewBoxUnits和ViewPortUnits设置为绝对值,你应该能够达到你想要的效果。
<ImageBrush ViewBox="0,0,200,200"
ViewBoxUnits="Absolute"
ViewPort="0,0,200,200"
ViewPortUnits="Absolute" />