2012-08-25 25 views
12

一段時間以來,一直在使用我的應用程序的人已經抱怨WinForm如何繪製一些奇怪的行爲。 表格有一個splitcontainerpanel1正在修復。 直到今天,我還沒有能夠重現他們的問題。在不同的環境中Winforms不同大小

我剛剛在運行32位Win7企業版的筆記本電腦上安裝了該應用程序。 (我的電腦上運行的應用程序運行64位版本的Win7 ent沒有問題。)

爲了看看發生了什麼,我將項目文件複製到筆記本電腦,並用Visual Studio 2012打開它看到發生了什麼事。然而,我有些愕然,因爲我不知道該怎麼辦。

在dev上。機(我的64位的win7 ENT),規格爲形式(和分離容器)尺寸如下:

  • 表格高度:383
  • 表格寬度:707
  • 分割容器高度:321
  • 分割容器寬度:691
  • 分配器距離:380

當我打開筆記本電腦上的項目,規格變更到這一點:

  • 形態高度:419
  • 形成寬:859
  • 分割容器高度:397
  • 分割容器寬度:921
  • 分配器距離:380

現在我終於可以瞭解一些人無法看到程序如何被看到的挫折感。

在32位機器上,分配器部分覆蓋了幾個按鈕,這顯然使得程序難以使用,因爲他們看不到文本。

爲什麼會出現這種情況?

我的意思是,如果原來的代碼被設置爲特定的大小值,是不是就應該是這樣無論在哪裏運行該程序? (當然,用戶不會調整大小)。

然後最重要的是,有沒有什麼辦法可以解決這個問題,而不必建立兩個不同的版本?

+2

看屏幕大小和字體縮放。 –

回答

12

他們可以在不同的DPI(每英寸點數)來運行自己的系統,所以這種情況正在改變控件定位和縮放Windows窗體的途中因縮放選項和字體大小的影響。

你可以看一下控制面板|外觀和個性化|顯示找到那些設置:

  • 較小 - 100%= 96 DPI
  • 中度 - 125%= 120 DPI
  • 更大 - 150%= 144 DPI

你可以看到WinForms縮放選項,如果它是DPI有效果和適當調整。

+0

非常感謝您,我花了相當一段時間才重新發現問題。我從來沒有想過這件事,而現在我親眼看到了它,我至少可以確定它在那裏。 現在我只想了解如何確保它不會自動縮放。 (或者讓人們可以確定自己是否希望它自動縮放)。 – Rickard

+0

謝謝 - 非常有用! – Smashery