One of the common scenarios for using the KryptonHeaderGroup is to provide expanding/collapsing groups. This has now been made a whole lot simpler to implement.
Arrow ButtonSpecs
When implementing an expanding/collapsing group your first task is to add a ButtonSpec so that you can show an appropriate image on the header. At the moment you have to create this image yourself and then assign it to the Image property of the ButtonSpec.
This is such a common requirement that I have added four builtin button types so you only need to select the type required. Here is a header group with each of the ArrowLeft, ArrowUp, ArrowRight, and ArrowDown types showing.

Just like the existing Context and Close button types the default values for the new arrow buttons are exposed via the KryptonPalette, so you can ensure the images are customized appropriately to match the rest of your custom palette design.
KryptonHeaderGroup properties
There are three new properties for the KryptonHeaderGroup that provide the expanding/collapsing functionality for you. These are called AutoCollapseArrow, Collapsed and CollapsedTarget.

The Collapsed property is a simple boolean property that specifies if the control is in the collapsed or expanded mode of operation. By default the control is created in the expanded state.
When defined as collapsed the value of the CollapseTarget is used to determine which of the headers should be shown. If you choose Collapse to Primary Header then the primary header will be visible and the secondary header hidden. When collapsed the client area is always hidden from view.
Our third property is AutoCollapseArrow and is used to automate updates to the Collapsed property. When the user clicks an arrow button spec the control will automatically toggle the collapsed state and also invert the direction of the showing arrow.
For example, if the header has a button spec of type ArrowUp and the AutoCollapseArrow property is defined as True then the following happens when the user presses the button. The Collapsed state is inverted from True to False or vica versa. Then the button spec is changed to point in the opposite direction by being updated to ArrowDown.
So by leaving all the three new properties as the default values you can add basic collapse/expanding functionality by adding a single button spec which points in the appropriate direction.
I will be updating the examples and the tutorials in the documentation to use the new properties instead of the existing hand coded mechanism.

