我有一个专为1900x1200分辨率设计的wpf应用程序,但是我们的一些用户使用了Windows显示设置来调整所有内容的125%-150%,有没有办法让应用程序忽略这些设置并仍然显示通常?
我见过一些名为SetProcessDPIAware here的东西,但是没有运气好。
以下是应用程序的屏幕截图,显示比例调高至150%
正如您所看到的,应用程序太小而无法使其正确调整大小。
答案 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