private static Brush GetArrowButtonBackBrush(States.ArrowButton stateId) { switch (stateId) { case States.ArrowButton.ABS_UPPRESSED: case States.ArrowButton.ABS_DOWNPRESSED: case States.ArrowButton.ABS_LEFTPRESSED: case States.ArrowButton.ABS_RIGHTPRESSED: return(SystemBrushes.ControlDarkDark); case States.ArrowButton.ABS_UPHOT: case States.ArrowButton.ABS_DOWNHOT: case States.ArrowButton.ABS_LEFTHOT: case States.ArrowButton.ABS_RIGHTHOT: return(SystemBrushes.ControlDark); case States.ArrowButton.ABS_UPHOVER: case States.ArrowButton.ABS_DOWNHOVER: case States.ArrowButton.ABS_LEFTHOVER: case States.ArrowButton.ABS_RIGHTHOVER: return(SystemBrushes.ControlLight); // case States.ArrowButton.ABS_UPDISABLED: // case States.ArrowButton.ABS_DOWNDISABLED: // case States.ArrowButton.ABS_LEFTDISABLED: // case States.ArrowButton.ABS_RIGHTDISABLED: // case States.ArrowButton.ABS_UPNORMAL: // case States.ArrowButton.ABS_DOWNNORMAL: // case States.ArrowButton.ABS_LEFTNORMAL: // case States.ArrowButton.ABS_RIGHTNORMAL: default: return(SystemBrushes.Control); } }
private static Point[] GetArrowPolygon(Rectangle prect, States.ArrowButton stateId) { switch (stateId) { case States.ArrowButton.ABS_UPNORMAL: case States.ArrowButton.ABS_UPHOT: case States.ArrowButton.ABS_UPPRESSED: case States.ArrowButton.ABS_UPDISABLED: case States.ArrowButton.ABS_UPHOVER: return(GetUpArrowPolygon(prect)); case States.ArrowButton.ABS_DOWNNORMAL: case States.ArrowButton.ABS_DOWNHOT: case States.ArrowButton.ABS_DOWNPRESSED: case States.ArrowButton.ABS_DOWNDISABLED: case States.ArrowButton.ABS_DOWNHOVER: return(GetDownArrowPolygon(prect)); case States.ArrowButton.ABS_RIGHTNORMAL: case States.ArrowButton.ABS_RIGHTHOT: case States.ArrowButton.ABS_RIGHTPRESSED: case States.ArrowButton.ABS_RIGHTDISABLED: case States.ArrowButton.ABS_RIGHTHOVER: return(GetRightArrowPolygon(prect)); // case States.ArrowButton.ABS_LEFTNORMAL: // case States.ArrowButton.ABS_LEFTHOT: // case States.ArrowButton.ABS_LEFTPRESSED: // case States.ArrowButton.ABS_LEFTDISABLED: // case States.ArrowButton.ABS_LEFTHOVER: default: return(GetLeftArrowPolygon(prect)); } }
private static Color GetArrowButtonForeColor(States.ArrowButton stateId) { switch (stateId) { case States.ArrowButton.ABS_UPPRESSED: case States.ArrowButton.ABS_DOWNPRESSED: case States.ArrowButton.ABS_LEFTPRESSED: case States.ArrowButton.ABS_RIGHTPRESSED: return(SystemColors.Control); case States.ArrowButton.ABS_UPDISABLED: case States.ArrowButton.ABS_DOWNDISABLED: case States.ArrowButton.ABS_LEFTDISABLED: case States.ArrowButton.ABS_RIGHTDISABLED: return(SystemColors.ControlDark); // case States.ArrowButton.ABS_UPHOT: // case States.ArrowButton.ABS_DOWNHOT: // case States.ArrowButton.ABS_LEFTHOT: // case States.ArrowButton.ABS_RIGHTHOT: // case States.ArrowButton.ABS_UPNORMAL: // case States.ArrowButton.ABS_DOWNNORMAL: // case States.ArrowButton.ABS_LEFTNORMAL: // case States.ArrowButton.ABS_RIGHTNORMAL: // case States.ArrowButton.ABS_UPHOVER: // case States.ArrowButton.ABS_DOWNHOVER: // case States.ArrowButton.ABS_LEFTHOVER: // case States.ArrowButton.ABS_RIGHTHOVER: default: return(SystemColors.ControlDarkDark); } }
private static void DrawArrow(Context ctx, States.ArrowButton stateId, Rectangle prect) { var foreColor = GetArrowButtonForeColor(stateId); var arrowPts = GetArrowPolygon(prect, stateId); using (var pen = new Pen(foreColor, DpiUtil.Scale(2))) using (ctx.HighQuality()) { ctx.Graphics.DrawLines(pen, arrowPts); } }