今天下午讲的一节Webcast中重点介绍了High DPI,关于这个内容由于虚机中不支持DPI Aware的原因,没有做成Demo,现在给大家一个教程,希望对大家在的程序支持Windows 7系统有所帮助:

1. 创建一个托管应用程序(VB.NET或C#皆可,我这里用C#做一个例子):

为托管应用程序添加DPI Aware支持

为托管应用程序添加DPI Aware支持

2. 右击选择项目并添加一个app.manifest文件:

为托管应用程序添加DPI Aware支持

为托管应用程序添加DPI Aware支持

3. 使用下面的代码覆盖该文件:

为托管应用程序添加DPI Aware支持<?xml version="1.0" encoding="utf-8"?> 
为托管应用程序添加DPI Aware支持
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance%22> 
为托管应用程序添加DPI Aware支持  <assemblyIdentity version="
1.0.0.0" name="MyApplication.app"/> 
为托管应用程序添加DPI Aware支持  
<asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> 
为托管应用程序添加DPI Aware支持    
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings%22> 
为托管应用程序添加DPI Aware支持      <dpiAware>true</dpiAware> 
为托管应用程序添加DPI Aware支持    </asmv3:windowsSettings> 
为托管应用程序添加DPI Aware支持  </asmv3:application> 
为托管应用程序添加DPI Aware支持  <trustInfo xmlns="
urn:schemas-microsoft-com:asm.v2"> 
为托管应用程序添加DPI Aware支持    
<security> 
为托管应用程序添加DPI Aware支持      
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> 
为托管应用程序添加DPI Aware支持        
<!-- UAC Manifest Options 
为托管应用程序添加DPI Aware支持            If you want to change the Windows User Account Control level replace the 
为托管应用程序添加DPI Aware支持            requestedExecutionLevel node with one of the following. 
为托管应用程序添加DPI Aware支持
为托管应用程序添加DPI Aware支持        <requestedExecutionLevel  level="asInvoker" uiAccess="false" /> 
为托管应用程序添加DPI Aware支持        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" /> 
为托管应用程序添加DPI Aware支持        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" /> 
为托管应用程序添加DPI Aware支持
为托管应用程序添加DPI Aware支持            If you want to utilize File and Registry Virtualization for backward 
为托管应用程序添加DPI Aware支持            compatibility then delete the requestedExecutionLevel node. 
为托管应用程序添加DPI Aware支持        
--> 
为托管应用程序添加DPI Aware支持        
<requestedExecutionLevel level="asInvoker" uiAccess="false" /> 
为托管应用程序添加DPI Aware支持      
</requestedPrivileges> 
为托管应用程序添加DPI Aware支持    
</security> 
为托管应用程序添加DPI Aware支持  
</trustInfo> 
为托管应用程序添加DPI Aware支持
</asmv1:assembly>

 

4. 在Form1窗体上添加一些ToolBox的按钮:

为托管应用程序添加DPI Aware支持

为托管应用程序添加DPI Aware支持

为托管应用程序添加DPI Aware支持

5. 再创建一个项目:

为托管应用程序添加DPI Aware支持

为托管应用程序添加DPI Aware支持

为托管应用程序添加DPI Aware支持

6. 不要添加Manifest,直接在Form1上添加几个Toolbox的按钮:

为托管应用程序添加DPI Aware支持

7. 将解决方案编译好:

为托管应用程序添加DPI Aware支持

8. 在桌面属性选择Display:

为托管应用程序添加DPI Aware支持

9. 选择DPI为150%:

为托管应用程序添加DPI Aware支持

10. 登出系统再登录就可以应用该设置:

 为托管应用程序添加DPI Aware支持

11. 打开刚才编译好的两个应用程序就可以看到不同了:

为托管应用程序添加DPI Aware支持

两个程序哪个是DPI Aware的呢,大家可以猜猜,好,本文就到此,感谢!

相关文章:

  • 2022-12-23
  • 2021-10-07
  • 2022-12-23
  • 2021-04-23
  • 2021-11-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-09-05
  • 2021-11-26
  • 2022-12-23
  • 2022-01-14
  • 2022-01-15
  • 2022-01-01
  • 2022-12-23
相关资源
相似解决方案