PictureBox正在执行不需要的缩放C# 我目前有一个Windows窗体应用程序,中间有一个图片框,我也在绘制各种图像。这些图像绘制得很好,只是它们都被精确地放大了25%。我还应该补充一点,我正在使用Paint方法绘制所有内容,使用PaintEventArgs获取图形设备

PictureBox正在执行不需要的缩放C# 我目前有一个Windows窗体应用程序,中间有一个图片框,我也在绘制各种图像。这些图像绘制得很好,只是它们都被精确地放大了25%。我还应该补充一点,我正在使用Paint方法绘制所有内容,使用PaintEventArgs获取图形设备,c#,winforms,graphics,scale,C#,Winforms,Graphics,Scale,我确保SizeMode设置为Normal,我反复检查图形对象的比例因子是否为1,以及我传递给paint方法的所有图像对象的大小是否与它们应该的大小相同,但当绘制它们时,它们的大小不同 到目前为止,我一直在调用g.drawImage(image,Rectangle),并将图像的宽度和高度传递为矩形的宽度和高度,以便它们被强制以正确的大小绘制,但我觉得这应该是一个短期修复,我忽略了一些简单的事情 任何帮助都会很好,提前谢谢 代码如下(仅重要位): 这听起来像是图像的水平分辨率和垂直分辨率属性在您不希

我确保SizeMode设置为Normal,我反复检查图形对象的比例因子是否为1,以及我传递给paint方法的所有图像对象的大小是否与它们应该的大小相同,但当绘制它们时,它们的大小不同

到目前为止,我一直在调用g.drawImage(image,Rectangle),并将图像的宽度和高度传递为矩形的宽度和高度,以便它们被强制以正确的大小绘制,但我觉得这应该是一个短期修复,我忽略了一些简单的事情

任何帮助都会很好,提前谢谢

代码如下(仅重要位):


这听起来像是图像的
水平分辨率
垂直分辨率
属性在您不希望应用时被应用,根据Jeremy的链接修改代码,确保在调用
DrawImage
之前重置或忽略
HorizontalResolution
VerticalResolution
,向我们显示代码!我打赌这很简单:@JeremyThompson现在就用代码编辑。希望那里有足够的信息来帮助你!
public class Level : PictureBox
{
    ...
    private Image image;
    ...

    public Level(TabPage parent, Panel propertiesPanel, ItemManager items, string levelName)
    {
        ...

        image = Image.FromFile(@"Levels/" + levelName);
        Size = image.Size;
        SizeMode = PictureBoxSizeMode.Normal;

        MouseClick += new MouseEventHandler(level_MouseClick);
        MouseMove += new MouseEventHandler(level_MouseMove);
        Paint += new PaintEventHandler(level_Paint);

        Invalidate();
    }

    private void level_Paint(object sender, PaintEventArgs e)
    {
        Graphics g = e.Graphics;
        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

        //With the rectangle fix (drawing to correct size)
        g.DrawImage(image, new Rectangle(0, 0, image.Size.Width, image.Size.Height));
        ////Without the fix (as i thought it should be be this is where it scales it)
        //g.DrawImage(image, new Point(0, 0));

        drawPlacedItems(g);
        drawItemPreview(g);
    }