I've heavily customised the colours of my WinGrid including the colour of the scrollbars, but there's a grey rectangle that appears in the bottom-right corner of the grid when both scrollbars are visible. Which appearance do I need to change/override in order to make that rectangle blue?
Here's a screenshot... I've drawn a red X in the rectangle whose colour I wish to change.
Thanks
Andy
Thanks Mike.
That's done exactly what I wanted.
Hi Andy,
What you are looking at here is the ScrollbarIntersectionUIElement. There aren't any Appearance properties that affect this area, but you can set it's color in a number of ways.
One way to do this is via Application Styling. But it would be a lot of work to use AppStyling just to style one tiny little element like this.
Another option would be to use a DrawFilter. This is much easier. Here's some sample code.
public class MyDrawFilter : IUIElementDrawFilter { #region IUIElementDrawFilter Members bool IUIElementDrawFilter.DrawElement(DrawPhase drawPhase, ref UIElementDrawParams drawParams) { if (drawParams.Element is ScrollbarIntersectionUIElement) { switch (drawPhase) { case DrawPhase.BeforeDrawBackColor: drawParams.AppearanceData.BackColor = Color.Blue; break; } } return false; } DrawPhase IUIElementDrawFilter.GetPhasesToFilter(ref UIElementDrawParams drawParams) { if (drawParams.Element is ScrollbarIntersectionUIElement) return DrawPhase.BeforeDrawBackColor; return DrawPhase.None; } #endregion }
You assign the DrawFilter to the grid like this:
this.ultraGrid1.DrawFilter = new MyDrawFilter();
You can do this in the form constructor or in the Form_Load.