WPF图像相同的宽度/高度/ dpi但不同的显示

时间:2018-03-22 10:23:30

标签: wpf image wpf-controls

我从一张较大的图像中剪切了两张图像。两幅剪切图像均为300x148,并且有96 dpi。

我用这种方式显示它们:

<Image Source="{Binding Image1, Converter={StaticResource imageConverter}}" />
<Image Source="{Binding Image2, Converter={StaticResource imageConverter}}" />

问题在于我在视觉上看到了高度的差异。更奇怪的是,当我交换它们时:

<Image Source="{Binding Image2, Converter={StaticResource imageConverter}}" />
<Image Source="{Binding Image1, Converter={StaticResource imageConverter}}" />

高度差异发生变化但仍然存在。

我将一些日志记录到ImageCoverter以记录返回的值,而宽度/高度/ dpi值没有差异。

我没有任何影响图片的风格。

我还应该考虑其他任何领域吗?

修改 这就是我创建300x148图像的方式。我传递了裁剪后的图像和宽度:

public static Bitmap Scale(Bitmap image, double width)
{
    double ratio = width / image.Width;
    var newWidth = (int)(image.Width * ratio);
    var newHeight = (int)(image.Height * ratio);

    var scaledImage = new Bitmap(newWidth, newHeight);

    using (var graphics = Graphics.FromImage(scaledImage))
    {
        graphics.DrawImage(image, 0, 0, newWidth, newHeight);
    }

    return scaledImage;
}

1 个答案:

答案 0 :(得分:-1)

图像是显示图片的控件。 你不能只设置图像控件的高度和宽度吗?

<Image Height="100" Width="100"