2017-06-02 19 views
0

Microsoft Accessをベースにした非常に古いアプリケーションがあります。 UIの部分はまだMicrosoft Accessで、他の部分はWinFormsを使用し、最新の部分はWPFを使用します(古い部分を段階的に取り除こうとしています)。レガシーアプリケーションとWindows 10のスケーリング

Windows 10と高DPIモニタで奇妙なスケーリングの問題を発見しましたが、今は古いUIの変更に関係しないこの問題の解決法を探しています。

この高いDPIモニタで作業するには、Windowsのスケーリングを200%に設定する必要があります。

ここに問題があります:アプリケーションが200%に設定された状態でユーザーがログインすると、文字列のスペースが大きすぎる文字列になります。Windowsのフォントサイズが大きくなったようですストリングを含むコントロールのディメンションではありません。 Windowsのスケーリングを変更しても問題は解決されませんが、スケーリングを変更してからアプリケーションを再起動しても問題は解決しません。

...ユーザーがスケーリングを100%に設定してログインしても、後でスケーリングを変更したり、アプリケーションを再起動しても、すべてが問題ありません。他の方法には、

しかし、私たちは、常にバックログオフし、ログイン時にそれを再び増加100%までのWindowsのスケーリングを設定するために、当社のユーザーに教えてくれませんすることはできません。

がないですこの問題を回避しますか?

ありがとうございました(ある場合)。

+0

アプリを作成するdpiAwareは仕事です。遅れている仕事は、通常、アプリの年齢が上がるほどプログラマがスケーリングの問題に注意を払う可能性は低くなります。アプリにWPFを追加すると、それが悪化すると、アプリが実際にはそうでないときはdpiAwareに自動的に宣言されます。最も速い「修正」は、そうしないようにすることです。[assembly:System.Windows.Media.DisableDpiAwareness]をコードに追加してください。あなたはあまりにも多くの結果を好きではないかもしれません、あなたはそれをより良くするためにあなたの袖をロールアップする必要があります。 –

+0

[appを4.7に設定し、私がここで提起した変更を行う](https://stackoverflow.com/a/43808350/1466046)、winformsの部分もDPIwareであるため、問題を修正する必要があります – magicandre1981

答えて

0

ちょっとしたグーグルで私は少なくとも私の特別な問題で解決策を見つけました。

Microsoft AccessにdpiAwareノードがtrueに設定されたマニフェストファイルがありました。これをfalseに変更すると、AccessはMicrosoftの「インテリジェントな」スケーリングを使用せず、代わりに何らかの「ダム」スケーリングを使用するように見えるようです。これは私のために全面的な問題を修正しました。

私が知っている限り、古いアプリケーションでこの問題を修正するための実行可能ファイル用のマニフェストファイルを作成できますが、Accessには既に存在するマニフェストファイルが付属しているため、試しませんでした。

関連する問題