private ElementStyle GetPredefinedTileStyle(eMetroTileColor tileColor) { ElementStyle style = new ElementStyle(); style.TextColor = System.Drawing.Color.White; style.PaddingTop = 4; style.PaddingRight = 4; style.PaddingBottom = 4; style.PaddingLeft = 4; if (tileColor == eMetroTileColor.Default) { style.BackColor = ColorScheme.GetColor(0x245375); style.BackColor2 = ColorScheme.GetColor(0x30679B); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.Blue) { style.BackColor = ColorScheme.GetColor(0x4C66A8); style.BackColor2 = ColorScheme.GetColor(0x5B78BE); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.Green) { style.BackColor = ColorScheme.GetColor(0x54AF0E); style.BackColor2 = ColorScheme.GetColor(0x68C210); style.BackColorGradientAngle = 45; style.Border = eStyleBorderType.Solid; style.BorderColor = ColorScheme.GetColor(0x65B727); style.BorderWidth = 1; } else if (tileColor == eMetroTileColor.Magenta) { style.BackColor = ColorScheme.GetColor(0x765594); style.BackColor2 = ColorScheme.GetColor(0x8562B9); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.Orange) { style.BackColor = ColorScheme.GetColor(0xDF8300); style.BackColor2 = ColorScheme.GetColor(0xE88800); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.Plum) { style.BackColor = ColorScheme.GetColor(0x6D3453); style.BackColor2 = ColorScheme.GetColor(0x884371); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.Teal) { style.BackColor = ColorScheme.GetColor(0x45A98E); style.BackColor2 = ColorScheme.GetColor(0x50BB9E); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.Coffee) { style.BackColor = ColorScheme.GetColor(0x734C29); style.BackColor2 = ColorScheme.GetColor(0x664325); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.RedOrange) { style.BackColor = ColorScheme.GetColor(0xE65E20); style.BackColor2 = ColorScheme.GetColor(0xEB7427); style.BackColorGradientAngle = 45; style.Border = eStyleBorderType.Solid; style.BorderColor = ColorScheme.GetColor(0xED823D); style.BorderWidth = 1; } else if (tileColor == eMetroTileColor.RedViolet) { style.BackColor = ColorScheme.GetColor(0x730046); style.BackColor2 = ColorScheme.GetColor(0x66003D); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.Olive) { style.BackColor = ColorScheme.GetColor(0xBFBB11); style.BackColor2 = ColorScheme.GetColor(0xB2B010); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.DarkOlive) { style.BackColor = ColorScheme.GetColor(0x787860); style.BackColor2 = ColorScheme.GetColor(0x6B6B56); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.Rust) { style.BackColor = ColorScheme.GetColor(0x301818); style.BackColor2 = ColorScheme.GetColor(0x1F0F0F); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.Maroon) { style.BackColor = ColorScheme.GetColor(0x603030); style.BackColor2 = ColorScheme.GetColor(0x4F2828); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.Yellowish) { style.BackColor = ColorScheme.GetColor(0xF2B705); style.BackColor2 = ColorScheme.GetColor(0xE0A904); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.Blueish) { style.BackColor = ColorScheme.GetColor(0x03658C); style.BackColor2 = ColorScheme.GetColor(0x02587A); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.DarkBlue) { style.BackColor = ColorScheme.GetColor(0x034079); style.BackColor2 = ColorScheme.GetColor(0x034F96); style.BackColorGradientAngle = 45; style.Border = eStyleBorderType.Solid; style.BorderColor = ColorScheme.GetColor(0x1D5C96); style.BorderWidth = 1; } else if (tileColor == eMetroTileColor.Yellow) { style.BackColor = ColorScheme.GetColor(0xFFCA08); style.BackColor2 = ColorScheme.GetColor(0xFFCA08); style.BackColorGradientAngle = 45; style.TextColor = Color.Black; } else if (tileColor == eMetroTileColor.Gray) { style.BackColor = ColorScheme.GetColor(0x7B7F7E); style.BackColor2 = ColorScheme.GetColor(0x5E6160); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.DarkGreen) { style.BackColor = ColorScheme.GetColor(0x17934B); style.BackColor2 = ColorScheme.GetColor(0x1BAD5C); style.BackColorGradientAngle = 45; style.Border = eStyleBorderType.Solid; style.BorderColor = ColorScheme.GetColor(0x32B56D); style.BorderWidth = 1; } else if (tileColor == eMetroTileColor.MaroonWashed) { style.BackColor = ColorScheme.GetColor(0x965155); style.BackColor2 = ColorScheme.GetColor(0x8A4A4E); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.PlumWashed) { style.BackColor = ColorScheme.GetColor(0x40374C); style.BackColor2 = ColorScheme.GetColor(0x362E40); style.BackColorGradientAngle = 45; } else if (tileColor == eMetroTileColor.Azure) { style.BackColor = ColorScheme.GetColor(0x00ABDC); style.BackColor2 = ColorScheme.GetColor(0x00BFE3); style.BackColorGradientAngle = 45; style.Border = eStyleBorderType.Solid; style.BorderColor = ColorScheme.GetColor(0x1AC6E6); style.BorderWidth = 1; } return style; }
/// <summary> /// Called when Color property has changed. /// </summary> /// <param name="oldValue">Old property value</param> /// <param name="newValue">New property value</param> protected virtual void OnTileColorChanged(eMetroTileColor oldValue, eMetroTileColor newValue) { UpdateEffectiveStyle(); OnPropertyChanged(new PropertyChangedEventArgs("TileColor")); }