2016-03-10 44 views
1

我有一個CheckBox控件的WinForms應用程序(在Win 7 64x中開發)。我已將我的表單的AutoScaleMode屬性設置爲「無」。窗體在我的機器上看起來很好。GUI故障:在Windows 8中顯示的複選框文本不完整

然而,當我的程序發送給我的同事誰是運行Windows 8,該複選框文本顯示不完整的。我不確定這個控件的屬性是什麼造成的。

+0

不要將'AutoScaleMode'設置爲'None' - 修改您的佈局以改用不同的縮放比例。這比以往任何時候都更重要 - 現在大量機器的DPI都很高,而且您的應用在高DPI顯示器上很難使用。 – Luaan

回答

2

我不知道是什麼屬性與此對照的是導致此。

顯然,它是AutoScaleMode屬性。或者,我更準確地說,它是Size屬性。

你的同事的機器不僅有不同大小的控件,而且還有不同大小的文本。通過比較屏幕截圖,你可以清楚地看到這一點。複選框控件的允許大小太小(不夠寬)以顯示整個標籤,所以它會被截斷,您看到的只是標籤的前兩個字母。

解決方案相當簡單:使控制面積更大。更好的主意是通過將容器形式的AutoScaleMode屬性設置爲更明智的內容(如Text或DPI)來自動調整大小。這確保了當用戶使用不同於DPI或字體設置的設置時,它不會中斷。

長期來說,最好使用TableLayoutPanel或FlowLayoutPanel結合Anchor和Dock屬性設計流體佈局。它比設計師的拖放工作更有效,但它產生了更好的結果,可在所有環境中進行擴展。

+0

我已經嘗試'Font'和'Dpi'作爲AutoScaleMode,但毛刺依然存在。 – Disasterkid