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); } }
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."); }
public static void SetCornerCurves(DependencyObject element, CornerCurves value) { element.SetValue(CornerCurvesProperty, value); }