Пример #1
0
        /// <summary>
        /// Converts a Thickness to a new Thickness. It's possible to ignore a side
        /// with the IgnoreThicknessSide property.
        /// </summary>
        /// <param name = "value"></param>
        /// <param name = "targetType"></param>
        /// <param name = "parameter"></param>
        /// <param name = "culture"></param>
        /// <returns>The converted object.</returns>
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is Thickness)
            {
                // yes, we can override it with the parameter value
                if (parameter is IgnoreThicknessSideType)
                {
                    this.IgnoreThicknessSide = (IgnoreThicknessSideType)parameter;
                }

                var orgThickness = (Thickness)value;

                switch (this.IgnoreThicknessSide)
                {
                case IgnoreThicknessSideType.Left:
                    return(new Thickness(0, orgThickness.Top, orgThickness.Right, orgThickness.Bottom));

                case IgnoreThicknessSideType.Top:
                    return(new Thickness(orgThickness.Left, 0, orgThickness.Right, orgThickness.Bottom));

                case IgnoreThicknessSideType.Right:
                    return(new Thickness(orgThickness.Left, orgThickness.Top, 0, orgThickness.Bottom));

                case IgnoreThicknessSideType.Bottom:
                    return(new Thickness(orgThickness.Left, orgThickness.Top, orgThickness.Right, 0));

                default:
                    return(orgThickness);
                }
            }
            return(default(Thickness));
        }
 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
 {
     if (value is Thickness)
     {
         if (parameter is IgnoreThicknessSideType)
         {
             this.IgnoreThicknessSide = (IgnoreThicknessSideType)parameter;
         }
         var orgThickness = (Thickness)value;
         switch (this.IgnoreThicknessSide)
         {
             case IgnoreThicknessSideType.Left:
                 return new Thickness(0, orgThickness.Top, orgThickness.Right, orgThickness.Bottom);
             case IgnoreThicknessSideType.Top:
                 return new Thickness(orgThickness.Left, 0, orgThickness.Right, orgThickness.Bottom);
             case IgnoreThicknessSideType.Right:
                 return new Thickness(orgThickness.Left, orgThickness.Top, 0, orgThickness.Bottom);
             case IgnoreThicknessSideType.Bottom:
                 return new Thickness(orgThickness.Left, orgThickness.Top, orgThickness.Right, 0);
             default:
                 return orgThickness;
         }
     }
     return default(Thickness);
 }
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (!(value is Thickness))
            {
                return(new Thickness());
            }
            if (parameter as IgnoreThicknessSideType != IgnoreThicknessSideType.None)
            {
                this.IgnoreThicknessSide = (IgnoreThicknessSideType)parameter;
            }
            Thickness thickness = (Thickness)value;

            switch (this.IgnoreThicknessSide)
            {
            case IgnoreThicknessSideType.Left:
            {
                return(new Thickness(0, thickness.Top, thickness.Right, thickness.Bottom));
            }

            case IgnoreThicknessSideType.Top:
            {
                return(new Thickness(thickness.Left, 0, thickness.Right, thickness.Bottom));
            }

            case IgnoreThicknessSideType.Right:
            {
                return(new Thickness(thickness.Left, thickness.Top, 0, thickness.Bottom));
            }

            case IgnoreThicknessSideType.Bottom:
            {
                return(new Thickness(thickness.Left, thickness.Top, thickness.Right, 0));
            }

            default:
            {
                return(thickness);
            }
            }
        }