WPF 图像的宽度/高度/dpi 相同,但不同的分配



我从一个较大的图像中剪切了两张图像。两个剪切的图像都是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;
}

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

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

最新更新