예제 #1
0
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            if (value != null && !(value is CcBorder))
            {
                throw WrongTypeException;
            }

            var border = value as CcBorder;

            //转换成字符串
            if (destinationType == typeof(string))
            {
                if (null == border)
                {
                    return(string.Empty);
                }

                var sb = new StringBuilder();

                if (border.Size > 0)
                {
                    sb.Append($"{KeySize}{IntConverter.ConvertToString(context, culture, border.Size)}", Separator);
                }

                if (border.Radius > 0)
                {
                    sb.Append($"{KeyRadius}{IntConverter.ConvertToString(context, culture, border.Radius)}", Separator);
                }

                if (border.OpenDirection != CcCtrlPosition.None)
                {
                    sb.Append($"{KeyDirection}{PositionConverter.ConvertToString(context, culture, border.OpenDirection)}", Separator);
                }

                if (border.RadiusCorners != CcCtrlCorner.None)
                {
                    sb.Append($"{KeyCorners}{CornerConverter.ConvertToString(context, culture, border.RadiusCorners)}", Separator);
                }

                return(sb.ToString());
            }

            return(base.ConvertTo(context, culture, value, destinationType));
        }