2

我在使用尺寸为 500*20 的图像时遇到了这个奇怪的问题。图像不是以 500 的宽度渲染的,而是以 50 的宽度渲染的。我尝试了这两种方法,但没有任何运气:

<Image Name="ImgSubTest" Height="20" Width="500" Canvas.Top="00" Canvas.Left="22">
    <Image.Source>
        <BitmapImage DecodePixelWidth="500"  
                     UriSource="/Path;component/Images/LightGreen.png" />
    </Image.Source>
</Image>

&

<Image Name="ImgSubTest" Height="20" Width="500" Canvas.Top="00" Canvas.Left="22"
       HorizontalAlignment="Stretch"
       Source="/Path;component/Images/LightGreen.png" />

我项目中的所有其他图像都渲染得很好。我知道我在这里遗漏了一些东西,但我无法弄清楚是什么。

4

1 回答 1

0

你看过图像的DPI设置吗?WPF 默认以 96DPI 渲染所有内容,如果 PNG 本身不是 96DPI,WPF 将根据其 DPI 设置将其渲染为更大或更小。

请参阅 Hanselman 关于 PNG 和 DPI 的文章:http ://www.hanselman.com/blog/BeAwareOfDPIWithImagePNGsInWPFImagesScaleWe​​irdOrAreBlurry.aspx

于 2012-08-27T05:49:53.127 回答