1

我有以下 ImageBrush 声明,我想用它来绘制窗口的背景。

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

如果我使用 StaticResource 绑定到 Window 的 Background 属性来设置它,则画笔会正确呈现,但图像正在缩放。这是我不想要的行为,我希望应用程序以原始分辨率使用图像并根据需要重复它以填充窗口背景,而不进行任何缩放。我不知道我做错了什么。

我使用的图像是 200px 宽和 200px 高。我在那里的视口值被猜到了,但在我这样做之前它不起作用。

谢谢你的帮助

编辑:修正了问题中的矛盾

4

2 回答 2

5

发现了问题。该图像是为 72 dpi 分辨率设计的 png。因此 WPF 对其进行缩放以匹配标准的 96 dpi 分辨率。问题不在于代码。

于 2009-09-24T00:15:02.387 回答
2

如果您知道源图像的分辨率,则可以将 ViewBox 和 ViewPort 值设置为像素。将 ViewBoxUnits 和 ViewPortUnits 设置为 absolute 应该可以达到你想要的效果。

<ImageBrush ViewBox="0,0,200,200" 
ViewBoxUnits="Absolute"
ViewPort="0,0,200,200"
ViewPortUnits="Absolute" />
于 2009-09-20T06:54:59.457 回答