Color-picker Showing Color Names - - Stack Overflow
Có thể bạn quan tâm
there is precious little to one of these until you want to do like VS and present System Colors apart from Named Colors, make it a popup or some such. Example using colors as the BackGround:
' capture the names Private _Colors As String() ' get the names ' add qualifiers to skip SystemCOlors or ' Transparent as needed Function GetColorNames As String() For Each colorName As String In KnownColor.GetNames(GetType(KnownColor)) _Colors.Add(colorName) End If Next ' post the names to a CBO: cboBackColor.Items.AddRange(_Colors)On the form CBO, set the DrawMode to OwnerDrawFixed, then:
Private Sub cboSheetBackColor_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles cboSheetBackColor.DrawItem Dim Bclr As Color, Fclr As Color ' get the colors to use for this item for this Bclr = Color.FromName(_Colors(e.Index).ToString) Fclr = GetContrastingColor(Bclr) ' see below With e.Graphics Using br As New SolidBrush(Bclr) .FillRectangle(br, e.Bounds) End Using Using br As New SolidBrush(Fclr) .DrawString(cboSheetBackColor.Items(e.Index).ToString, cboSheetBackColor.Font, br, e.Bounds.X, e.Bounds.Y) End Using End With e.DrawFocusRectangle() End SubYou can just draw a swatch like Windows/VS does by defining a rectangle to fill. Generally, thats swell, but in the case where you are doing something like defining a background color it rather helps to show how it looks with text on it and more of the color than the little bitty swatch - hence the filled CBO Item rect.
The standard window Text color will not show up on all of them. For a "light" theme, Violet and Black etc will hide/make the color name impossible to read. GetContrastingColor is a function which evaluates the Brightness of the current color and then returns either White or Black:
Public Function GetContrastingColor(ByVal clrBase As Color) As Color ' Y is the "brightness" Dim Y As Double = (0.299 * clrBase.R) _ + (0.587 * clrBase.G) _ + (0.114 * clrBase.B) If (Y < 140) Then Return Color.White Else Return Color.Black End If End FunctionYou can then use all this in a Class which inherits from ComboBox, or build a UserControlif you like distinct controls. You can also leave it as code in a DLL which is called on those occasions. I should mention there are also perhaps a dozen such critters on CodeProject.
Từ khóa » Visual Basic Color Name
-
Settings
-
VB.NET Color Names
-
VB Colors Name List | MrExcel Message Board
-
Colors Class (System.Windows.Media) | Microsoft Docs
-
RGB Colours - Excel At Finance
-
Official Color Names In VBA - Microsoft Excel Tips
-
Excel VBA: ColorIndex Codes List & RGB Colors
-
Thread: Get Color Name - VBForums
-
C# Color Name Table
-
Theme Color | Visual Studio Code Extension API
-
Excel VBA Color Code List - ColorIndex, RGB Color, VB Color
-
RGB To Color Name Mapping(Triplet And Hex)
-
Color Term - Wikipedia