private void CachePens() { Brush borderBrush = this.BorderBrush; Thickness borderThickness = this.BorderThickness; this.leftPen = BeveledBorder.GetPen(borderThickness.Left, borderBrush); this.rightPen = BeveledBorder.GetPen(borderThickness.Right, borderBrush); this.topPen = BeveledBorder.GetPen(borderThickness.Top, borderBrush); this.bottomPen = BeveledBorder.GetPen(borderThickness.Bottom, borderBrush); }
protected override Size ArrangeOverride(Size finalSize) { UIElement child = this.Child; if (child != null) { Rect finalRect = BeveledBorder.HelperDeflateRect(BeveledBorder.HelperDeflateRect(new Rect(finalSize), this.BorderThickness), this.Padding); child.Arrange(finalRect); } this.borderRect = new Rect(this.BorderThickness.Left / 2.0, this.BorderThickness.Top / 2.0, finalSize.Width, finalSize.Height); return(finalSize); }
protected override Size MeasureOverride(Size constraint) { UIElement child = this.Child; Size size1 = new Size(); Size size2 = BeveledBorder.HelperCollapseThickness(this.BorderThickness); Size size3 = BeveledBorder.HelperCollapseThickness(this.Padding); Size size4 = new Size(size2.Width + size3.Width, size2.Height + size3.Height); if (child == null) { return(size4); } Size availableSize = new Size(Math.Max(0.0, constraint.Width - size4.Width), Math.Max(0.0, constraint.Height - size4.Height)); child.Measure(availableSize); Size desiredSize = child.DesiredSize; size1.Width = desiredSize.Width + size4.Width; size1.Height = desiredSize.Height + size4.Height; return(size1); }