/// <summary> /// Derive all colors from the given base color /// </summary> /// <param name="dictionary">Dictionary to store new Colors</param> /// <param name="baseColor"></param> public static void CalculateColors(ref ResourceDictionary dictionary, Color baseColor) { HSV bc = HSV.FromColor(baseColor); HSV baseborder = HSV.FromColor(Color.FromRgb(102, 102, 102)); baseborder.H = bc.H; baseborder.S = bc.S * 0.5; Color selectedcolorhover = HSV.FromHSV(bc.H, bc.S, bc.V * 0.7); selectedcolorhover.A = 80; Color transm3 = baseborder.ToColor(0, 0, 0.1); transm3.A = 119; Color transm2t = baseborder.ToColor(0, 0, -0.2); transm2t.A = 34; dictionary["BaseColor"] = HSV.FromHSV(bc.H, bc.S * 0.7, bc.V * 0.4); dictionary["SelectedColor"] = bc.ToColor(); dictionary["DarkerSelectedColor"] = HSV.FromHSV(bc.H, bc.S, bc.V * 0.7); dictionary["DarkerSelectedColorHover"] = selectedcolorhover; dictionary["BaseM2Color"] = baseborder.ToColor(0, 0, -0.2); dictionary["BaseM2TColor"] = transm2t; dictionary["BaseM1Color"] = baseborder.ToColor(0, 0, -0.15); dictionary["Base1Color"] = baseborder.ToColor(0, 0, 0.025); dictionary["Base2Color"] = baseborder.ToColor(0, 0, 0.05); dictionary["Base3Color"] = baseborder.ToColor(0, 0, 0.1); dictionary["Base3TColor"] = transm3; dictionary["Base4Color"] = baseborder.ToColor(0, 0, 0.125); dictionary["Base5Color"] = baseborder.ToColor(0, 0, 0.15); dictionary["Base6Color"] = baseborder.ToColor(0, 0, 0.175); dictionary["TextColor"] = Colors.White; dictionary["ErrorColor"] = Color.FromRgb(255, 136, 136); dictionary["DarkErrorColor"] = Color.FromRgb(170, 68, 68); }