在Windows 10中运行时,我的vs2013应用程序具有模糊的字体

在升级到赢得10我vs 2013表格时,运行出现模糊,并在一个不同的风格比2013年在devise模式下的图片。

试过安装vs 2015和模糊的效果仍然是一样的

编辑 – 在这里

我正在添加图片以帮助澄清。 还有很多其他的变化,如消除3Dbutton

这是编辑模式下的表单

这是运行时模式下的形式

与其说是DPI的改变,不如说是Windows 10。 检查您的新窗口10安装您的DPI设置。

检查Windows 10 DPI

如果它超过100%,那么这就是为什么你的应用程序是模糊的。

查看DPI Aware Winforms应用程序。

DPI感知

基本上,一旦你超过了125%,默认情况下,Windows默认通过让你的应用程序将其输出呈现给位图并将该位图绘制到屏幕上来接管你的UI的缩放。 该位图的缩放会使文本看起来模糊。

那么我找到了答案,显然这个问题开始于Windows 8,我喜欢瘟疫避免。

在Visual Studio 2015中,取消注释此代码。

<application xmlns="urn:schemas-microsoft-com:asm.v3"> <windowsSettings> <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware> </windowsSettings> </application> 

在Visual Studio 2013中,只需在相同的地方添加相同的代码即可。

回复:在Windows 10中的模糊形式。

我有Windows 8.1(OEM)。 我的形式都很清晰。 我更新到Windows 10和我的形式是模糊的。 我也使用VBScript和我的MsgBox文本也模糊。

我使用了125%的屏幕放大。 我读到的几个帮助表明,当尺寸设置为100%时,模糊性消失。 我也发现这是真实的,但我想用125%。 我的笔记本电脑是德文的,所以我不知道所有的英文术语。 我会尽我所能解释我做了什么。

  1. 在开始页面我选择设置(??? – 正上方的开/关)
  2. 我选择了系统(???)
  3. 我选择了屏幕(???)
  4. 我选择的扩展设置(???)不是使用125%的预设,
  5. 我选择了文本和其他元素的扩展大小更改(???)
  6. 我点击用户定义的缩放比例(???)并手动设置为125%。

有效!!!

这个解决方案为我工作。

在Windows设置中应用所需的字体大小后(例如125%dpi,我使用125%)>打开记事本,将其粘贴到它:

 REG ADD "HKCU\Control Panel\Desktop" /v DpiScalingVer /t REG_DWORD /d 0x00001018 /f REG ADD "HKCU\Control Panel\Desktop" /v Win8DpiScaling /t REG_DWORD /d 0x00000001 /f REG ADD "HKCU\Control Panel\Desktop" /v LogPixels /t REG_DWORD /d 0x00000078 /f 

然后将其保存为.cmd在您的硬盘上的某处>打开本地的地面政策编辑器(gpedit.msc从搜索栏)>在用户配置(即时翻译从我的语言,所以可能有很少的翻译差异)>去Windows设置>脚本(登录/注销)>在右边的窗口中双击Login来打开它(因为我们希望在每次登录时应用)>在Scripts选项卡中,选择Add>,然后在新窗口中选择Browser> navigate to where你保存了你的cmd文件并选择它>然后只需按下确定>应用>确定>然后注销/重新启动你的电脑>添加此脚本后首次登录到您的帐户,所以它将被应用>然后,如果它不起作用,注销/重新启动,从现在开始它应该每次工作(为我工作)。

调用外部函数在整个应用程序中进行设置。 它并没有比这更容易:

  [STAThread] static void Main() { **SetProcessDPIAware();** //THIS Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } //ADD THESE TWO LINES !! [System.Runtime.InteropServices.DllImport("user32.dll")] private static extern bool SetProcessDPIAware();