Пример #1
0
        public override void SetActualSize(Point available)
        {
            if (!Visible)
            {
                SetDimension(Point.Zero, available);
                return;
            }

            Point minSize = GetExpectedSize(available);

            SetDimension(minSize, available);

            Rectangle client = ActualClientArea;

            if (Orientation == Orientation.Horizontal)
            {
                // Trennung zwischen links und rechts
                if (Slot1 != null)
                {
                    Slot1.SetActualSize(new Point(ActualSplitterPosition, client.Height));
                }
                if (Slot2 != null)
                {
                    Slot2.SetActualSize(new Point(client.Width - SplitterSize - ActualSplitterPosition, client.Height));
                    Slot2.ActualPosition += new Point(ActualSplitterPosition + SplitterSize, 0);
                }
            }
            else if (Orientation == Orientation.Vertical)
            {
                // Trennung zwischen oben und unten
                if (Slot1 != null)
                {
                    Slot1.SetActualSize(new Point(client.Width, ActualSplitterPosition));
                }
                if (Slot2 != null)
                {
                    Slot2.SetActualSize(new Point(client.Width, client.Height - SplitterSize - ActualSplitterPosition));
                    Slot2.ActualPosition += new Point(0, ActualSplitterPosition + SplitterSize);
                }
            }
        }