我有一個 WinForm 應用程式,此 C# 代碼分配顏色:
grid.Styles.Highlight.BackColor = Properties.Settings.Default.TrueDBGridSelectedStyleBackColor;
如果我查找它的定義位置,我會在 Settings.settings 中找到它,定義如下:
<Setting Name="C1TabPageTabBackColorSelected" Type="System.Drawing.Color" Scope="Application">
<Value Profile="(Default)">Highlight</Value>
</Setting>
請注意那里的“突出顯示”一詞。此檔案中的其他顏色是用顏色名稱或 rgb 值定義的,但 Highlight 是什么意思?
如果我在分配它的 C# 代碼的除錯器中停止并查看
Properties.Settings.Default.TrueDBGridSelectedStyleBackColor
我看到“{Name=Highlight, ARGB=(255, 0, 120, 215)}” System.Drawing.Color
如果我在 ARGB 中分配相同的顏色,而不是像這樣:
grid.Styles.Highlight.BackColor = Color.FromArgb(255, 0, 120, 215);
我得到了不同的顏色 - 更深的藍色,結果控制元件中沒有紅色成分。
沒有 Color.HighLight 常量,例如 Color.White。這里發生了什么?名為 Highlight 的顏色是否有一些特殊行為?
它是否最初從某些作業系統顏色中獲得顏色,但由于名稱而被控制覆寫?我找不到任何這樣說的檔案。
uj5u.com熱心網友回復:
這很可能是SystemColors.Highlight 屬性。它不是指特定顏色,而是指當前 Windows 主題的突出顯示顏色,用于選定專案的背景,例如在串列框中。
正如@HansPassant 指出的那樣,Highlight它也是KnownColor Enum常量之一。您可以使用Color.FromKnownColor(KnownColor) 方法來獲取與列舉常量對應的顏色。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/527165.html
