我有一个专为 1900x1200 分辨率设计的 wpf 应用程序,但我们的一些用户使用 Windows 显示设置将所有内容的大小调整了 125%-150%,有没有办法让应用程序忽略这些设置并仍然显示通常吗?
我看到了一个叫做 SetProcessDPIAware 的东西 here , 但没有任何运气。
这是显示缩放比例高达 150% 的应用程序屏幕截图
如您所见,该应用程序太小了,无法调整其大小。
最佳答案
Dpi 意识在这种情况下无济于事。它只会改变 CompositionTarget.TransformToDevice 矩阵,但控件大小不会改变。
我使用 View 框来缩放所有内容。我应用中的所有尺寸都是为 Surface Pro 3 纵向设计的:
<Window>
<Viewbox Stretch="Uniform">
<Grid Width="1440" Height="2160">
<!-- ... -->
</Grid>
</Viewbox>
</Window>
您可以根据屏幕 DPI 计算 View 框大小。看到这个答案:https://stackoverflow.com/a/12414433/991267
关于c# - 让 WPF 应用程序忽略 DPI 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18449760/