TUM.CMS.VplControl.Core.NodeGroup.CalculateBorder C# (CSharp) Method

CalculateBorder() private method

private CalculateBorder ( ) : void
return void
        private void CalculateBorder()
        {
            if (ChildNodes.Count == 0) return;
            if (Border == null) return;
            if (HitTestBorder == null) return;

            var minTop = double.MaxValue;
            var maxTop = double.MinValue;
            var minLeft = double.MaxValue;
            var maxLeft = double.MinValue;


            foreach (var node in ChildNodes)
            {
                if (node.Left < minLeft) minLeft = node.Left;
                if (node.Top < minTop) minTop = node.Top;

                if (node.Left + node.ActualWidth > maxLeft) maxLeft = node.Left + node.ActualWidth;
                if (node.Top + node.ActualHeight > maxTop) maxTop = node.Top + node.ActualHeight;
            }

            double offset = 30;

            minLeft -= offset;
            minTop -= offset;
            maxLeft += offset;
            maxTop += offset;

            Border.Width = maxLeft - minLeft;
            Border.Height = maxTop - minTop;
            Canvas.SetLeft(Border, minLeft);
            Canvas.SetTop(Border, minTop);

            HitTestBorder.Width = maxLeft - minLeft;
            //HitTestBorder.Height = maxTop - minTop + 30;
            Canvas.SetLeft(HitTestBorder, minLeft);
            Canvas.SetTop(HitTestBorder, minTop - 30);

            OnPropertyChanged("BorderSize");
        }
    }