相关疑难解决方法(0)

如何配置应用程序以在具有高DPI设置(例如150%)的计算机上正确运行?

我在C#中创建了一个简单的Winforms应用程序.当我在具有高DPI设置(例如150%)的计算机上运行应用程序时,应用程序会按比例放大.到现在为止还挺好!但是,不是使用更高的字体大小渲染字体,所有文本也只是按比例放大.这当然导致非常模糊的文本(在按钮等所有控件上).

窗户不应该正确地渲染文本吗?例如,我的应用程序的标题栏呈现清晰明了.

c# fonts dpi winforms dpi-aware

86
推荐指数
4
解决办法
4万
查看次数

创建DPI感知应用程序

我在C#中有一个表单应用程序.当我更改显示器的DPI时,所有控件都会移动.我使用了代码this.AutoScaleMode = AutoScaleMode.Dpi,但它没有避免这个问题.

有没有人有想法?

c# dpi dpi-aware

67
推荐指数
4
解决办法
8万
查看次数

检测窗口字体大小(100%,125%,150%)

我创建了一个完美的应用程序,直到用户选择125%或150%.这会打破我的申请.我后来找到了一种通过检测DPI来找到字体大小的方法.

在中文版的Windows 7开始使用我的应用程序之前,这一点很有效.整个应用程序在中文窗口7打破.从我所知道的(我无法测试它,因为我只有英文版本和安装语言包不会导致问题)中文字符导致一个奇怪的DPI打破了我的应用程序.

我目前的代码是这样的:

if (dpi.DpiX == 120) // For 125% fonts
{
    // Resize form and set default font to correct problems
}
else if (dpi.DpiX == 96) // For 100 and 150% fonts
{
    // Resize form and set default font to correct problems
}
Run Code Online (Sandbox Code Playgroud)

在Windows 7的英文版本中工作得很好,但不知何故中文版本跳过这个,并且表单会自行破坏,控件甚至不显示,字体非常大并且超越问题,图片框被移动.

那么在不检测API的情况下检测Windows字体比例(100%,125%和150%)的好方法是什么?我需要一些可以在所有Windows 7操作系统和语言上运行的实用程序.

.net c# cjk windows-7 winforms

40
推荐指数
2
解决办法
7万
查看次数

标签 统计

c# ×3

dpi ×2

dpi-aware ×2

winforms ×2

.net ×1

cjk ×1

fonts ×1

windows-7 ×1