9

1900x1200 の解像度用に設計された wpf アプリケーションを使用していますが、一部のユーザーは Windows の表示設定を使用してすべてのサイズを 125% ~ 150% に変更しています。アプリケーションでこれらの設定を無視して正常に表示する方法はありますか?

ここでSetProcessDPIAware と呼ばれるものを見たことがありますが、うまくいきませんでした。

これは、ディスプレイのスケーリングを最大 150% にしたアプリケーションのスクリーン ショットです。 スケーリングを伴うアプリケーション

ご覧のとおり、アプリケーションが小さすぎて、適切なサイズにする方法がありません。

4

2 に答える 2

4

この場合、Dpi 認識は役に立ちません。CompositionTarget.TransformToDevice マトリックスのみが変更されますが、コントロールのサイズは変更されません。

ビューボックスを使用してすべてのコンテンツをスケーリングします。私のアプリのすべてのサイズは、Surface Pro 3 の縦長用に設計されています。

<Window>
    <Viewbox Stretch="Uniform">
        <Grid Width="1440" Height="2160">
            <!-- ... -->
        </Grid>
    </Viewbox>
</Window>

画面の DPI に基づいてビュー ボックスのサイズを計算できます。この回答を参照してください: https://stackoverflow.com/a/12414433/991267

于 2014-10-23T20:49:57.893 に答える