1
我們有一個日本用戶報告,在他的日文機器上窗體大小被截斷(小尺寸,並非所有控件都顯示)。 在Windows窗體了.Designer.cs文件,我們有以下設置:Windows窗體窗體大小在日文操作系統上被截斷
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
而且,在形式構造函數,我們有一些代碼,看起來像調整窗體大小的DPI。 uThe日本用戶有一個普通的DPI設置Ø96
//
// Adjust Form Size from DPIRatio
//
var size = this.Size;
// dpiRatio is 1.0 if DPI is 96,
// dpiRatio is less than 1.0 if DPI higher than 96
var dpiRatio = DPIHelper.DPIRatio;
var newSize = new Size((int)(size.Width/dpiRatio), (int)(size.Height/dpiRatio));
this.MaximumSize = newSize;
this.MinimumSize = newSize;
this.Size = newSize;
我確信,它來自於日本的Windows設定不同的字體,但沒有發現任何指導,遵循以處理在網絡上。任何想法?
漢斯,感謝您的反饋。這個DPI代碼在這裏是爲了某些東西:沒有它,在DPI設置高於96的Wnd機器上,表單尺寸不是很好。你有關於處理較高DPI和日本機器的很好的想法嗎? – 2010-09-27 18:08:17
較高的DPI也會選擇較大的系統字體大小。所以AutoScaleMode會處理表單的大小,使其更大。我不明白你爲什麼需要它。確保在更改DPI設置時讓機器重新啓動。 – 2010-09-27 18:18:12
漢斯,實際上你寫的是理論,但實際上沒有這個DPI代碼,這是行不通的。在理論上,我們有很多Wnd兼容性問題應該可以正常工作http://codebetter.com/blogs/patricksmacchia/archive/2010/04/06/windows-programming-the-quot-it-works-on-my -machine-quot-syndroma.aspx – 2010-09-28 07:45:55