Given how often you need to select colors from within applications it makes sense to create a specialized version of the recently added KryptonDropButton that handles this common scenario. The KryptonColorButton allows the user to select a color using a context menu. Here is the out of the box appearance…

The red color block is drawn using the SelectedColor property value which itself generates a SelectedColorChanged event whenever it changes. The size and location of this red block is defined by the SelectedRect property. So if you prefer your color block to appear at a different place then you can customize the setting. Here is an example where the rectangle has been adjusted to be 0,0,16,16…
![]()

This size covers the entire image and so you cannot see any of the default image. This is great if you want a large solid block of color as user feedback. Note that the color block overlays the defined image so if you alter the image it could affect the drawing of the solid color block. If you remove the image then you will not see any color block because there is no image for it to overlay.
This is the appearance of the context menu by default…

You can alter the text strings that appear by updating the child properties of the Strings composite property. Also you can turn on and off which parts of the context menu appear. Here I have removed the Standard, ‘No Color‘ and ’More colors…‘ parts of the menu and changed the name and color scheme of the remainder…

If you really want to be radical then hook into the DropDown event and completely change the contents of the context menu or e.Cancel the event and show you own context menu instead. Hopefully the current implementation will handle the majority of scenarios.