程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 為托管應用程序添加DPI Aware支持

為托管應用程序添加DPI Aware支持

編輯:關於.NET

今天下午講的一節Webcast中重點介紹了High DPI,關於這個內容由於虛機中不支持 DPI Aware的原因,沒有做成Demo,現在給大家一個教程,希望對大家在的程序支持 Windows 7系統有所幫助:

1.創建一個托管應用程序(VB.NET或C#皆可,我這裡用C#做一個例子):

2.右擊選擇項目並添加一個app.manifest文件:

3.使用下面的代碼覆蓋該文件:

<?xml version="1.0" encoding="utf-8"?>
<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>
  <assemblyIdentity version="1.0.0.0"  name="MyApplication.app"/>
  <asmv3:application xmlns:asmv3="urn:schemas-microsoft- com:asm.v3">
    <asmv3:windowsSettings  xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings%22>
      <dpiAware>true</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft- com:asm.v3">
        <!-- UAC Manifest Options 
            If you want to change the Windows User  Account Control level replace the
            requestedExecutionLevel node with one of the  following.

        <requestedExecutionLevel  level="asInvoker"  uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator"  uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable"  uiAccess="false" />

            If you want to utilize File and Registry  Virtualization for backward 
            compatibility then delete the  requestedExecutionLevel node.
        -->
        <requestedExecutionLevel level="asInvoker"  uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
</asmv1:assembly>

4.在Form1窗體上添加一些ToolBox的按鈕:

5.再創建一個項目:

6.不要添加Manifest,直接在Form1上添加幾個Toolbox的按鈕:

7.將解決方案編譯好:

8.在桌面屬性選擇Display:

9.選擇DPI為150%:

10.登出系統再登錄就可以應用該設置:

11.打開剛才編譯好的兩個應用程序就可以看到不同了:

兩個程序哪個是DPI Aware的呢,大家可以猜猜,好,本文就到此,感謝!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved