我有一個應用程序在工作,它是用VS2008在VB.Net winforms中編寫的。它最近更新到VS2015;但是,一些幻像邊界已經開始出現在用戶界面上。大多數控件/用戶界面都是自定義控件,但希望這裏的某個人可能會對2015年爲什麼現在出現這些內容有所瞭解。(我在2008年編寫了相同的代碼,並且邊框不在那裏)。WinForms幻影邊框
下面的屏幕截圖顯示了在操作中的「幻影邊框」。
這可能是很難看到的,但在文字左側的淺灰色線是「幻影邊界」。雖然在這種情況下這看起來不是什麼大問題,但在整個用戶界面上的情況要嚴重得多,所有其他控件的功能都差不多。
希望有人有一些想法,因爲我是新鮮的!
我試過了 - 禁用控件中的所有邊界,然後禁用(以確保沒有緩存狀態)。檢查用戶控件上的所有屬性以確保我不會丟失屬性。
我會在衆目lim lim之下宣佈你的應用程序是DPI Aware。在VS2015中開始一個新的Winform項目。轉到項目菜單 - >項目屬性 - <應用程序選項卡 - >查看窗口設置按鈕以打開app.manifest文件。將''塊中包含'dpiAware'標記的塊複製到舊應用程序中。 –
TnTinMn
@TnTinMn有趣的想法!我明天去看看。您是否大致瞭解這些設置的dpi識別時間?我發現最奇怪的是,如果我構建它,它將在win7和win10上呈現相同的效果,而不僅僅是10.必須承認這是一個相當令人困惑的問題。 –
DPI認知度一直是回到XP的移動目標。在[編寫DPI-Aware桌面和Win32應用程序](https://msdn.microsoft.com/zh-cn/)中介紹了一個很好的摘要表。COM/EN-US /庫/ dn469266(V = vs.85)的.aspx#high_dpi_tutorial)。最有可能的罪魁禍首是在Vista中啓動的DPI虛擬化,但監視器需要幾年時間才能更換,以便問題變得明顯。 – TnTinMn