c# - 让 WPF 应用程序忽略 DPI 设置

标签 c# wpf dpi

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

我看到了一个叫做 SetProcessDPIAware 的东西 here , 但没有任何运气。

这是显示缩放比例高达 150% 的应用程序屏幕截图 Application with Scaling

如您所见,该应用程序太小了,无法调整其大小。

最佳答案

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/

相关文章:

c# - 将一个二维数组转换为两个一维数组

c# - Dictionary.FirstOrDefault() 如何确定是否找到结果

c# UWP 自动滚动文本

c# - IValueConverter 的绑定(bind)值重置为默认值

未输入任何值时,C# TextBox to int() 不工作

c# - 如何通过 ViewModel 更改 View 中的某些内容

c# - 单击一次部署后的通知图标设置

java - 图标和文本在 IntelliJ IDE 中看起来不错,但在运行 JAR 文件时它们看起来模糊/放大

c# - 进行 DPI 缩放的简单方法?

css - Android 设备中的 "large text"选项使应用程序中的文本使用 ionic/cordova 变大