示例#1
0
        public void ResetCornerCurves()
        {
            if (AssociatedObject.Children.Count > 2)
            {
                CornerCurves noCurves = _noCurves;
                foreach (Visual vis in AssociatedObject.Children.Skip(1))
                {
                    CornerCurves.SetCornerCurves(vis, noCurves);

                    /*string typeName = vis.GetType().FullName;
                     * if ((vis is IContentControl ctrl) && (ctrl.Content != null))
                     *  typeName += ", " + ctrl.Content.GetType().FullName;
                     *
                     * Console.WriteLine("CHILD TYPE: " + typeName);*/
                }
            }

            if (AssociatedObject.Children.Count >= 2)
            {
                if (AssociatedObject.Orientation == Orientation.Vertical)
                {
                    CornerCurves.SetCornerCurves(AssociatedObject.Children.First(), _vertFirst);
                    CornerCurves.SetCornerCurves(AssociatedObject.Children.Last(), _vertLast);
                }
                else
                {
                    CornerCurves.SetCornerCurves(AssociatedObject.Children.First(), _horizFirst);
                    CornerCurves.SetCornerCurves(AssociatedObject.Children.Last(), _horizLast);
                }
            }
            else if (AssociatedObject.Children.Count == 1)
            {
                CornerCurves.SetCornerCurves(AssociatedObject.Children.First(), _allCurves);
            }
        }
示例#2
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            CornerCurves val = (CornerCurves)value;

            string[] radiusStrings = parameter.ToString().Split(';');
            if (radiusStrings.Length == 2)
            {
                CornerRadius trueRadius  = CornerRadius.Parse(radiusStrings[0]);
                CornerRadius falseRadius = CornerRadius.Parse(radiusStrings[1]);

                double retTopLeft     = trueRadius.TopLeft;
                double retTopRight    = trueRadius.TopRight;
                double retBottomRight = trueRadius.BottomRight;
                double retBottomLeft  = trueRadius.BottomLeft;

                if (!val.TopLeft)
                {
                    retTopLeft = falseRadius.TopLeft;
                }

                if (!val.TopRight)
                {
                    retTopRight = falseRadius.TopRight;
                }

                if (!val.BottomRight)
                {
                    retBottomRight = falseRadius.BottomRight;
                }

                if (!val.BottomLeft)
                {
                    retBottomLeft = falseRadius.BottomLeft;
                }

                return(new CornerRadius(retTopLeft, retTopRight, retBottomRight, retBottomLeft));
            }
            throw new InvalidOperationException("Invalid parameter value.");
        }
示例#3
0
 public static void SetCornerCurves(DependencyObject element, CornerCurves value)
 {
     element.SetValue(CornerCurvesProperty, value);
 }