翻譯|使用教程|編輯:龔雪|2022-10-24 10:26:00.013|閱讀 216 次
概述:本文主要介紹如何開發基于DevExpress的應用程序,使其可以在高DPI的設備上使用,歡迎下載相關組件體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
DevExpress WinForm擁有180+組件和UI庫,能為Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForms能完美構建流暢、美觀且易于使用的應用程序,無論是Office風格的界面,還是分析處理大批量的業務數據,它都能輕松勝任!
DPI Awareness模式指定在高分辨率屏幕上顯示應用程序的方式。
要使基于DevExpress的WinForms應用程序能夠感知DPI,請打開Project Settings Page并選擇所需的感知模式。
或者,在應用程序啟動時調用以下方法:
不要使用應用程序清單文件來啟用DPI感知,因為這可能會導致許多問題(例如,與clickonce不兼容)。
在應用程序被設置為DPI-aware時,不要使用Microsoft Windows圖形設備接口(GDI),這可能會導致意想不到的結果。也就是說不要使用任何圖形對象,如位圖、筆刷或字體。另外,不要調用可能使用它們的任何子系統(例如,不要將皮膚應用到應用程序)。
調用靜態的(在VB.NET中共享)方法,以確保正確激活DPI感知。
因為您的應用程序需要根據顯示的DPI值調整大小,保持布局靈活。如果可能,使用LayoutControl、TablePanel和StackPanel容器,當父容器大小發生變化時,這些容器會自動調整控件的布局。
不管DPI感知模式、光柵圖像縮放出現模糊時,要保持簡潔的應用程序外觀,請使用矢量圖像:矢量皮膚和SVG圖標。
如果您更喜歡柵格項目圖標,可以使用存儲:它為每個DPI值存儲獨立的圖像包,并根據顯示在它們之間動態切換。
許多DevExpress控件公開CustomDraw事件,允許您重繪控件元素。
在支持DPI Awareness之前,這些事件公開了返回對象的e.Graphics屬性,您可以調用此對象的方法來繪制自定義形狀和文本字符串。
C#
e.Graphics.DrawString(...);
VB.NET
e.Graphics.DrawString(...)
現在所有CustomDraw<VisualElement>事件參數都公開了返回GraphicsCache對象的e.Cache屬性——圖形的DevExpress對象,GraphicsCache公開了與標準圖形類相同的API,并針對High-DPI和directx呈現的應用程序進行了優化,您應用始終使用e.Cache屬性中可用的繪制方法。
C#
e.Cache.DrawString(...);
VB.NET
e.Cache.DrawString(...)
要跟蹤所有不推薦用于DirectX-rendered和Per-Monitor DPI-aware應用程序的API時,請調用靜態WindowsFormsSettings.ForcePaintApiDiagnostics方法,并將安全級別設置為第一個參數:
遠程用戶不斷收到應用程序視覺外觀的快照,應用程序的視覺效果越多,需要進行的更新就越多。如果連接很差且刷新率低,應用程序可能看起來沒有響應。在一些低性能的環境中,您可能會遇到類似的問題,例如當您的目標是使用WinForms應用程序的嵌入式系統時。
要在遠程環境中減少流量消耗并提高整體性能,可以有選擇地禁用可選效果。
在v21.1或更新版本中,啟用OptimizeRemoteConnectionPerformance屬性以最小化視覺效果和動畫的數量。
DevExpress技術交流群6:600715373 歡迎一起進群討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網