让WPF应用程序忽略DPI设置

Her*_*rro 8 c# wpf dpi

我有一个专为1900x1200分辨率设计的wpf应用程序,但是我们的一些用户使用了Windows显示设置来调整所有内容的125%-150%,有没有办法让应用程序忽略这些设置并仍能正常显示?

我在这里看到了一些名为SetProcessDPIAware的东西,但没有任何运气.

这是应用程序的屏幕截图,显示比例调高至150% 应用缩放

正如您所看到的,应用程序太小,无法使其正确调整大小.

Der*_*ter 4

在这种情况下,Dpi 意识将无济于事。它只会更改 CompositionTarget.TransformToDevice 矩阵,但控件大小不会更改。

我使用视图框来缩放所有内容。我的应用中的所有尺寸均专为 Surface Pro 3 纵向设计:

<Window>
    <Viewbox Stretch="Uniform">
        <Grid Width="1440" Height="2160">
            <!-- ... -->
        </Grid>
    </Viewbox>
</Window>
Run Code Online (Sandbox Code Playgroud)

您可以根据屏幕 DPI 计算视图框大小。请参阅此答案:/sf/answers/869010341/