第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Windows字體縮放比例大于100%時(shí)如何使GUI正常運(yùn)行

Windows字體縮放比例大于100%時(shí)如何使GUI正常運(yùn)行

慕哥9229398 2019-12-07 16:42:18
當(dāng)在Windows控制面板中選擇較大的字體大?。ɡ?25%或150%)時(shí),每次以像素為單位進(jìn)行設(shè)置時(shí),VCL應(yīng)用程序都會出現(xiàn)問題。拿走TStatusBar.Panel。我將其寬度設(shè)置為僅包含一個標(biāo)簽,現(xiàn)在使用大字體將標(biāo)簽“溢出”。其他組件也有同樣的問題。戴爾的某些新筆記本電腦已將默認(rèn)設(shè)置設(shè)為125%,因此,在過去,此問題非常罕見,現(xiàn)在非常重要。如何解決這個問題?
查看完整描述

3 回答

?
慕運(yùn)維8079593

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個贊

注意:請參閱其他答案,因?yàn)樗鼈儼浅S袃r(jià)值的技術(shù)。我在這里的回答僅提供警告和警告,以防止容易理解DPI。

我通常避免使用進(jìn)行DPI感知縮放TForm.Scaled = True。僅當(dāng)DPI意識對打電話給我并愿意為此付費(fèi)的客戶變得重要時(shí),它才對我重要。這種觀點(diǎn)背后的技術(shù)原因是,無論是否了解DPI,您都在打開一個通往受傷世界的窗口。許多標(biāo)準(zhǔn)和第三方VCL控件在High DPI中不能很好地工作。值得注意的例外是,包裝Windows Common Controls的VCL部件在高DPI時(shí)表現(xiàn)出色。大量的第三方和內(nèi)置的Delphi VCL自定義控件無法很好地發(fā)揮作用,或者根本無法達(dá)到很高的DPI。如果您打算打開TForm.Scaled,請確保針對項(xiàng)目中的每個表單,您使用的每個第三方和內(nèi)置控件都以96、125和150 DPI進(jìn)行測試。

Delphi本身是用Delphi編寫的。對于大多數(shù)形式,它都已打開“高DPI意識”標(biāo)記,盡管就在大多數(shù)形式中,即使在Delphi XE2中,IDE作者自己也決定不打開“高DPI意識”清單標(biāo)記。請注意,在Delphi XE4和更高版本中,HIGH DPI感知標(biāo)記已打開,并且IDE看起來不錯。

我建議您不要使用具有高DPI Aware標(biāo)志(如David的答案所示)的TForm.Scaled = true(這是Delphi中的默認(rèn)設(shè)置,因此,除非您對其進(jìn)行了修改,否則大多數(shù)表單都具有Scaled = true)。使用內(nèi)置的delphi表單設(shè)計(jì)器構(gòu)建的VCL應(yīng)用程序。

過去,我曾嘗試對TForm.Scaled為true以及Delphi表單縮放出現(xiàn)毛刺時(shí)希望看到的那種破損進(jìn)行最小化的采樣。這些故障并非總是且僅由DPI值(而不是96)觸發(fā)。我無法確定其他因素的完整列表,包括Windows XP字體大小的更改。但是,由于大多數(shù)故障僅出現(xiàn)在我自己的應(yīng)用程序中,因此在相當(dāng)復(fù)雜的情況下,我決定向您展示一些可以驗(yàn)證自己的證據(jù)。

在Windows 7中將DPI Scaling設(shè)置為“ Fonts @ 200%”時(shí),Delphi XE看起來像這樣,并且在Windows 7和8中,Delphi XE2同樣被破壞,但是這些問題在Delphi XE4上似乎已得到修復(fù):

這些大多數(shù)是標(biāo)準(zhǔn)的V控件,在高DPI時(shí)表現(xiàn)不佳。請注意,大多數(shù)事情根本沒有擴(kuò)展,因此Delphi IDE開發(fā)人員決定忽略DPI意識,并關(guān)閉DPI虛擬化。如此有趣的選擇。

僅在需要這種新的痛苦和困難選擇的新來源時(shí),才關(guān)閉DPI虛擬化。我建議你別管它。請注意,Windows通用控件似乎似乎可以正常工作。請注意,Delphi數(shù)據(jù)瀏覽器控件是一個圍繞標(biāo)準(zhǔn)Windows Tree公共控件的C#WinForms包裝器。那純粹是微軟的小故障,要解決這個問題,要么需要Embarcadero為他們的數(shù)據(jù)瀏覽器重寫一個純凈的本機(jī).Net樹控件,要么編寫一些DPI-check-and-modify-properties代碼來更改控件中的項(xiàng)目高度。甚至Microsoft WinForms都不能自動,自動地且無需自定義kludge代碼來處理高DPI。

更新:有趣的事實(shí):盡管delphi IDE似乎沒有被“虛擬化”,但它并未使用David所示的清單內(nèi)容來實(shí)現(xiàn)“非DPI虛擬化”。也許它在運(yùn)行時(shí)使用一些API函數(shù)。

更新2:針對我將如何支持100%/ 125%DPI的要求,我提出了一個兩階段計(jì)劃。第1階段是清點(diǎn)我的代碼,以獲取需要針對高DPI進(jìn)行修復(fù)的自定義控件,然后制定計(jì)劃對其進(jìn)行修復(fù)或逐步淘汰。第2階段將采用代碼的某些區(qū)域,這些區(qū)域被設(shè)計(jì)為沒有布局管理的表單,然后將它們轉(zhuǎn)換為使用某種布局管理的表單,以便DPI或字體高度更改可以在不進(jìn)行裁剪的情況下起作用。我懷疑這種“內(nèi)部控制”布局工作在大多數(shù)應(yīng)用程序中會比“內(nèi)部控制”工作復(fù)雜得多。


查看完整回答
反對 回復(fù) 2019-12-07
  • 3 回答
  • 0 關(guān)注
  • 1549 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號