public override object ConvertTo( ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(InstanceDescriptor) && value is FgColor) { FgColor obj = value as FgColor; ConstructorInfo ctor = typeof(FgColor).GetConstructor( new Type[] { typeof(string) }); if (ctor != null) { return(new InstanceDescriptor( ctor, new object[] { obj.Value })); } } return(base.ConvertTo( context, culture, value, destinationType)); }
public string ToString(ObjectStyle defaultStyle) { StringBuilder sb = new StringBuilder(); if (!Number.IsEqualTo(xStart, defaultStyle.xStart)) { sb.AppendFormat("xstart:{0};", xStart); } if (!Number.IsEqualTo(yStart, defaultStyle.yStart)) { sb.AppendFormat("ystart:{0};", yStart); } if (relativeWidth != defaultStyle.relativeWidth) { sb.AppendFormat("width:{0}%;", relativeWidth ?? 100); } if (width != defaultStyle.width) { sb.AppendFormat("width:{0};", width ?? 0); } if (relativeHeight != defaultStyle.relativeHeight) { sb.AppendFormat("height:{0}%;", relativeHeight ?? 100); } if (height != defaultStyle.height) { sb.AppendFormat("height:{0};", height ?? 0); } if (hPadding == vPadding && ((hPadding != defaultStyle.hPadding || vPadding != defaultStyle.vPadding))) { sb.AppendFormat("padding:{0};", Padding ?? 0); } else { if (hPadding != defaultStyle.hPadding) { sb.AppendFormat("hpadding:{0};", hPadding ?? 0); } if (vPadding != defaultStyle.vPadding) { sb.AppendFormat("vpadding:{0};", vPadding ?? 0); } } if (hFill != defaultStyle.hFill) { sb.AppendFormat("hfill:{0};", (hFill ?? false).ToString().ToLower()); } if (vFill != defaultStyle.vFill) { sb.AppendFormat("vfill:{0};", (vFill ?? false).ToString().ToLower()); } if (border != defaultStyle.border) { sb.AppendFormat("border:{0};", border ?? 0); } if (innerVerticalBorder == innerHorizontalBorder && (innerVerticalBorder != defaultStyle.innerVerticalBorder || innerHorizontalBorder != defaultStyle.innerHorizontalBorder)) { sb.AppendFormat("innerborder:{0};", InnerBorder ?? 0); } else { if (innerHorizontalBorder != defaultStyle.innerHorizontalBorder) { sb.AppendFormat("innerhborder:{0};", innerHorizontalBorder ?? 0); } if (innerVerticalBorder != defaultStyle.innerVerticalBorder) { sb.AppendFormat("innervborder:{0};", innerVerticalBorder ?? 0); } } if (spacing != defaultStyle.spacing) { sb.AppendFormat("spacing:{0};", spacing ?? 0); } if (innerVSpacing == innerHSpacing && (innerVSpacing != defaultStyle.innerVSpacing || innerHSpacing != defaultStyle.innerHSpacing)) { sb.AppendFormat("innerspacing:{0};", InnerSpacing ?? 0); } else { if (innerHSpacing != defaultStyle.innerHSpacing) { sb.AppendFormat("innerhspacing:{0};", innerHSpacing ?? 0); } if (innerVSpacing != defaultStyle.innerVSpacing) { sb.AppendFormat("innervspacing:{0};", innerVSpacing ?? 0); } } if (HAlign != HorizontalAlignment.Left && HAlign != defaultStyle.HAlign) { switch (HAlign) { case HorizontalAlignment.Right: sb.Append("halign:right;"); break; case HorizontalAlignment.Center: sb.Append("halign:center;"); break; } } if (VAlign != VerticalAlignment.Top && VAlign != defaultStyle.VAlign) { switch (VAlign) { case VerticalAlignment.Bottom: sb.Append("valign:bottom;"); break; case VerticalAlignment.Center: sb.Append("valign:center;"); break; } } if (DrawEmpty != defaultStyle.DrawEmpty) { sb.AppendFormat("drawempty:{0};", DrawEmpty.ToString().ToLowerInvariant()); } if (AllowHBreak != defaultStyle.AllowHBreak) { sb.AppendFormat("allowhbreak:{0};", AllowHBreak.ToString().ToLowerInvariant()); } if (AllowVBreak != defaultStyle.AllowVBreak) { sb.AppendFormat("allowvbreak:{0};", AllowVBreak.ToString().ToLowerInvariant()); } if (!bgColor.Equal(defaultStyle.BgColor)) { sb.AppendFormat("bgcolor:{0};", BgColor.ToHTMLColor()); } if (!fgColor.Equal(defaultStyle.FgColor)) { sb.AppendFormat("fgcolor:{0};", FgColor.ToHTMLColor()); } if (!borderColor.Equals(defaultStyle.BorderColor)) { sb.AppendFormat("bordercolor:{0};", BorderColor.ToHTMLColor()); } return(sb.ToString().TrimEnd(';')); }