Exemple #1
0
        /// <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);
		}
Exemple #7
0
        /// <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();
		}