图像未以指定宽度渲染

时间:2012-08-22 13:01:28

标签: wpf wpf-controls

我正面临这个奇怪的问题,尺寸为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" />

我项目中的所有其他图片都可以正常显示。我知道我在这里遗漏了一些东西,但我无法弄清楚是什么。

1 个答案:

答案 0 :(得分:0)

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

参见Hanselman关于PNG和DPI的文章:http://www.hanselman.com/blog/BeAwareOfDPIWithImagePNGsInWPFImagesScaleWeirdOrAreBlurry.aspx