2014-02-21 120 views
0

我试图调整在asp.net的Visual Studio V2008的图像,C#
调整基于设备上的宽度图像和高度

using (Graphics newgraphics = Graphics.FromImage(myBackgroundImage)) 
{ 
newgraphics.Clear(Color.FromArgb(-1)); 
if ((float)oldbmp.Width/(float)Width == (float)oldbmp.Height/(float)Height)    
    { 
    newgraphics.DrawImage(oldbmp, 0, 0, Width, Height); 
    } 
} 

我已经进入了上面的代码,但我得到了以下错误建立。

Graphic.DrawImage被重载。它期望,int,int,矩形,graphicsunit

任何人有任何建议吗?

非常感谢
瑞秋

回答

0

我已经解决了这个问题

  • 在的InitializeComponent添加以下两行

  •  
         'this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);' 
         'this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;' 
    
    这就是为什么我做了 CLick Here
  • 我附着在图像的形式皮肤 - 因为它目前正在使用油漆覆盖方法 - 上面的代码不能重新调整图像的尺寸N的油漆覆盖方法

  • 将sizemode来拉伸图像,然后将检查设备 的DPI和重置图像所
这应该

感谢jundev为你的病人做的伎俩。

0

根据您所提供的错误信息,好像你没有提供的DrawImage方法的正确参数。

你能确认'oldbmp'属于什么类型吗?它应该是一个'图像'类型,以满足过载要求之一。

以下是DrawImage方法的所有重载。基于您的代码

http://msdn.microsoft.com/en-us/library/system.drawing.graphics.drawimage(v=vs.110).aspx

,下面超载应该做的工作。

http://msdn.microsoft.com/en-us/library/2ab36azw(v=vs.110).aspx

您是否尝试过使用0.0F而不是0?

+0

嗨Jundev,你是什么意思由0.0F而不是0? – Rachsherry

+0

基本上发生的事情是,我正在运行移动应用程序,并且当设备屏幕尺寸发生变化时(原始尺寸为240 * 268(宽*高),新设备为480 * 536。图像未调整大小以适合新设备 – Rachsherry

+0

这里是已经存在的代码 – Rachsherry

相关问题