如果我們創建一個新的 WinForms .NET 專案并在其上放置一個 ListBox 或 ListView 控制元件,默認情況下它們將使用作業系統視覺樣式呈現:

我需要繪制一個 1 像素的邊框,類似于系統在我的自定義控制元件中為 ListBox/ListView 提供的邊框。有沒有辦法使用系統呼叫檢索 ListBox/ListView 的系統邊框的顏色?
uj5u.com熱心網友回復:
C#/WinForms 的快速回答:
var rend = new VisualStyleRenderer("ListBox", 0, 0);
Color borderColor = rend.GetColor(ColorProperty.BorderColor);
您還可以使用屬性識別符號為 3801 的 [GetThemeColor}(https://docs.microsoft.com/en-us/windows/win32/api/uxtheme/nf-uxtheme-getthemecolor) 函式通過 Windows API 檢索相同的值:

但是,在一般情況下,邊框可能包含不同的顏色值和/或與父背景混合,因此檢索到的顏色值可能與您期望的不完全相同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/317317.html
下一篇:顫動滑鼠滾動在水平串列中不起作用
