2017-06-02 38 views
0

我們有一個基於Microsoft Access的相當老的應用程序。部分UI仍然是Microsoft Access,其他部分使用WinForms,最新的部分使用WPF(試圖逐步擺脫舊部分)。Windows 10中的傳統應用程序和縮放比例

我們在Windows 10和高DPI監視器發現了一個奇怪的結垢問題,現在我正在尋找一個治癒這個問題,preferrably一個不是涉及改變舊UI。

爲了能夠在這種高DPI工作監視Windows的比例應設置爲200%。

這就是問題:當用戶登錄時,將縮放設置爲200%,開始我們的應用程序結果的字符串使用太大的字體放置字符串的空間。它看起來像Windows增加了字體大小的字符串,而不是包含字符串的控件的尺寸。更改Windows的縮放比例不能解決問題,在更改縮放比例後不能解決問題後重新啓動我們的應用程序。

雖然...當在設置爲100%所有的縮放用戶登錄是好的,後來改變縮放或重新啓動應用程序時也是如此。

但是,我們不能,也不會告訴我們的用戶始終將Windows的縮放回註銷,並在登錄時再次增加它的時候100%。

是不是有其他的方式來解決這個問題?

感謝您的幫助(如果有的話)。

+0

製作應用程序dpiAware是行不通的。過期的工作,通常,應用程序越舊,程序員就越不注意擴展問題。讓WPF在應用程序中變得更糟,它實際上不會自動聲明應用程序爲dpiAware。最快的「修復」是阻止它執行此操作,將[assembly:System.Windows.Media.DisableDpiAwareness]添加到您的代碼中。你可能不太喜歡這個結果,你必須捲起袖子才能讓它變得更好。 –

+0

[將應用程序定位到4.7並進行我在此處提出的更改](https://stackoverflow.com/a/43808350/1466046),現在winforms部分也是DPIaware,並且應該解決此問題 – magicandre1981

回答

0

谷歌上搜索後一點點,我發現至少在我的特殊問題的解決方案。

的Microsoft Access必須設置爲true一個dpiAware節點的清單文件。改爲false似乎告訴Access不使用微軟的「智能」縮放,而是使用某種「啞」縮放。這爲我解決了整個問題。

據我知道一個可以創建任何可執行文件來解決與舊應用程序的問題這樣的清單文件,但我沒有嘗試,因爲訪問被運與已經存在的清單文件。

相關問題