2014-02-21 123 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

相關問題