/// <summary> /// Obtiene un estilo a partir de una cadena /// </summary> private StyleBauControl ConvertFromString(object objValue) { string [] arrStrValues = ((string)objValue).Split(','); ColorConverter objConverter = new ColorConverter(); StyleBauControl objStyle = new StyleBauControl(); try { // Obtiene la cadena formateada con los valores numéricos objStyle.RoundCorners = int.Parse(arrStrValues[0]); objStyle.AngleCorners = int.Parse(arrStrValues[1]); objStyle.ShadowThickness = int.Parse(arrStrValues[2]); objStyle.BorderWidth = int.Parse(arrStrValues[3]); // Obtiene la cadena formateada con los colores objStyle.BorderColor = (Color)objConverter.ConvertFromString(arrStrValues[4]); objStyle.BackgroundColor = (Color)objConverter.ConvertFromString(arrStrValues[5]); objStyle.BackgroundGradientColor = (Color)objConverter.ConvertFromString(arrStrValues[6]); objStyle.ShadowColor = (Color)objConverter.ConvertFromString(arrStrValues[7]); objStyle.ForeColor = (Color)objConverter.ConvertFromString(arrStrValues[8]); // Obtiene la cadena formateada con el modo del gradiante objStyle.GradientMode = (StyleBauControl.GroupBoxGradientMode) int.Parse(arrStrValues[9]); // Devuelve el estilo return(objStyle); } catch { throw new ArgumentException("Could not convert the value"); } }
/// <summary> /// Obtiene un estilo a partir de una cadena /// </summary> private StyleBauControl ConvertFromString(object objValue) { string [] arrStrValues = ((string) objValue).Split(','); ColorConverter objConverter = new ColorConverter(); StyleBauControl objStyle = new StyleBauControl(); try { // Obtiene la cadena formateada con los valores numéricos objStyle.RoundCorners = int.Parse(arrStrValues[0]); objStyle.AngleCorners = int.Parse(arrStrValues[1]); objStyle.ShadowThickness = int.Parse(arrStrValues[2]); objStyle.BorderWidth = int.Parse(arrStrValues[3]); // Obtiene la cadena formateada con los colores objStyle.BorderColor = (Color) objConverter.ConvertFromString(arrStrValues[4]); objStyle.BackgroundColor = (Color) objConverter.ConvertFromString(arrStrValues[5]); objStyle.BackgroundGradientColor = (Color) objConverter.ConvertFromString(arrStrValues[6]); objStyle.ShadowColor = (Color) objConverter.ConvertFromString(arrStrValues[7]); objStyle.ForeColor = (Color) objConverter.ConvertFromString(arrStrValues[8]); // Obtiene la cadena formateada con el modo del gradiante objStyle.GradientMode = (StyleBauControl.GroupBoxGradientMode) int.Parse(arrStrValues[9]); // Devuelve el estilo return objStyle; } catch { throw new ArgumentException("Could not convert the value"); } }
/// <summary> /// Pinta un panel con sombra y fondo con gradiante /// </summary> public static void PaintRoundedPanel(Graphics grpCanvas, int intLeft, int intTop, int intWidth, int intHeight, StyleBauControl objStyle) { // Ajusta el ancho y el alto intWidth = intWidth - 1; intHeight = intHeight - 1; // Si hay una sombra, quita su anchura y altura if (objStyle.ShadowColor != Color.Transparent) { intWidth -= objStyle.ShadowThickness; intHeight -= objStyle.ShadowThickness; } // Dibuja la sombra si es necesaria if (objStyle.ShadowColor != Color.Transparent) using (SolidBrush brsShadow = new SolidBrush(objStyle.ShadowColor)) { clsHelperDrawing.DrawRoundedShadow(grpCanvas, intLeft + objStyle.ShadowThickness - 1, intTop + objStyle.ShadowThickness - 1, intWidth + objStyle.ShadowThickness - 1, intHeight + objStyle.ShadowThickness - 1, objStyle.RoundCorners, objStyle.AngleCorners, brsShadow); } // Dibuja el rectángulo con el gradiante adecuado using (Pen penBorder = new Pen(objStyle.BorderColor, objStyle.BorderWidth)) { if (objStyle.GradientMode == StyleBauControl.GroupBoxGradientMode.None) using (SolidBrush brsBackGround = new SolidBrush(objStyle.BackgroundColor)) clsHelperDrawing.FillRoundedRectangle(grpCanvas, intLeft, intTop, intWidth, intHeight, objStyle.RoundCorners, objStyle.AngleCorners, brsBackGround, penBorder); else clsHelperDrawing.FillRoundedRectangle(grpCanvas, intLeft, intTop, intWidth, intHeight, objStyle.RoundCorners, objStyle.AngleCorners, objStyle.BackgroundColor, objStyle.BackgroundGradientColor, (LinearGradientMode) objStyle.GradientMode, penBorder); } }
/// <summary> /// Limpia los recursos que se estén utilizando. /// </summary> protected override void Dispose(bool blnDisposing) { // Elimina los objetos if (blnDisposing) { objStyle = null; } // Llama al base para eliminar los objetos base.Dispose(blnDisposing); }
/// <summary> /// Constructor del control /// </summary> public LabelRound() { // Inicializa los estilos SetStyle(ControlStyles.DoubleBuffer, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.SupportsTransparentBackColor, true); // Inicializa las propiedades Name = "LabelRound"; Text = Name; Size = new Size(368, 288); // Inicializa los estilos de etiqueta y panel Style = new StyleBauControl(); }
/// <summary> /// Constructor del control /// </summary> public CollapsableGroupBox() { // Inicializa los estilos SetStyle(ControlStyles.DoubleBuffer, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.SupportsTransparentBackColor, true); // Inicializa las propiedades Name = "GroupBox"; Text = Name; Size = new Size(300, 100); Padding = new Padding(5, cnstIntHeightHeader + 2, 10, 10); // Inicializa la altura real intRealHeight = Size.Height; // Inicializa los estilos de etiqueta y panel StyleLabel = new StyleBauControl(); StylePanel = new StyleBauControl(); // Inicializa el temporizador tmrCollapse.Interval = 1; tmrCollapse.Enabled = false; tmrCollapse.Tick += new EventHandler(tmrCollapse_Tick); }
/// <summary> /// Convierte un valor a una cadena /// </summary> public new string ConvertToString(object objValue) { StyleBauControl objStyle = (StyleBauControl)objValue; ColorConverter objConverter = new ColorConverter(); string strConvert; // Obtiene la cadena formateada con los valores numéricos strConvert = objStyle.RoundCorners.ToString() + ","; strConvert = objStyle.AngleCorners.ToString() + ","; strConvert += objStyle.ShadowThickness.ToString() + ","; strConvert += objStyle.BorderWidth.ToString() + ","; // Obtiene la cadena formateada con los colores strConvert += objConverter.ConvertToString(objStyle.BorderColor) + ","; strConvert += objConverter.ConvertToString(objStyle.BackgroundColor) + ","; strConvert += objConverter.ConvertToString(objStyle.BackgroundGradientColor) + ","; strConvert += objConverter.ConvertToString(objStyle.ShadowColor) + ","; strConvert += objConverter.ConvertToString(objStyle.ForeColor) + ","; // Obtiene la cadena formateada con el modo del gradiante strConvert += ((int)objStyle.GradientMode).ToString(); // Devuelve la cadena return(strConvert); }
/// <summary> /// Trata el evento de cambio de estilo /// </summary> private void Style_OnChangedStyle(StyleBauControl objSender) { Invalidate(); }