Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我的ImageBrush会缩放平铺图像?_C#_Wpf_Imagebrush - Fatal编程技术网

C# 为什么我的ImageBrush会缩放平铺图像?

C# 为什么我的ImageBrush会缩放平铺图像?,c#,wpf,imagebrush,C#,Wpf,Imagebrush,我有下面的ImageBrush声明,我想用它来绘制窗口的背景 <ImageBrush x:Key="Fondo" ImageSource="Fondo.png" Viewport="0,0,0.1,0.1" TileMode="Tile"/> 如果使用StaticResource绑定将其设置为窗口的背景属性,则画笔将正确渲染,但图像正在缩放。这是我不想要的行为,我希望应用程序以其本机分辨率使用图像,并根据需要重复它以填充窗口背

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

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

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

我使用的图像宽200像素,高200像素。我这里的视口值是猜测出来的,但在我这么做之前它不起作用

谢谢你的帮助


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

如果知道源图像的分辨率,可以将ViewBox和视口值设置为像素。将ViewBoxUnits和ViewPortUnits设置为绝对值,您应该能够实现所需的效果

<ImageBrush ViewBox="0,0,200,200" 
ViewBoxUnits="Absolute"
ViewPort="0,0,200,200"
ViewPortUnits="Absolute" />

如果知道源图像的分辨率,可以将ViewBox和视口值设置为像素。将ViewBoxUnits和ViewPortUnits设置为绝对值,您应该能够实现所需的效果

<ImageBrush ViewBox="0,0,200,200" 
ViewBoxUnits="Absolute"
ViewPort="0,0,200,200"
ViewPortUnits="Absolute" />


找到了问题。该图像是一个png,设计分辨率为72 dpi。因此,WPF正在对其进行缩放,以匹配标准的96 dpi分辨率。代码没有问题。

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

不起作用。图像仍在拉伸。。。谢谢你,但这不管用。图像仍在拉伸。。。谢谢,不过我修改了图像的分辨率。我在Adobe Fireworks中以72 dpi的分辨率创建图像。问题是WPF的分辨率为96 dpi,因此图像被自动缩放。如果您遇到同样的问题,请将图像修改为96 dpi,或者如果可能,使用矢量化图像。您救了我的命。谢谢,我想我在试图找出为什么wpfI中的图像更大时疯了。修复了更改图像分辨率的问题。我在Adobe Fireworks中以72 dpi的分辨率创建图像。问题是WPF的分辨率为96 dpi,因此图像被自动缩放。如果您遇到同样的问题,请将图像修改为96 dpi,或者如果可能,使用矢量化图像。您救了我的命。谢谢,我想我在试图弄清楚为什么wpf中的图像更大的时候疯了