让WPF应用程序忽略DPI设置

时间:2013-08-26 17:37:22

标签: c# wpf dpi

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

我见过一些名为SetProcessDPIAware here的东西,但是没有运气好。

以下是应用程序的屏幕截图,显示比例调高至150% Application with Scaling

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

1 个答案:

答案 0 :(得分:2)

在这种情况下,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