Example #1
0
        protected override Size OnArrange(Size finalSize)
        {
            int scrollAreaWidth  = finalSize.Width - Padding.Left - Padding.Right;
            int scrollAreaHeight = finalSize.Height - Padding.Top - Padding.Bottom;

            if (!m_VerticalScrollBar.IsCollapsed && !m_HorizontalScrollBar.IsCollapsed)
            {
                m_VerticalScrollBar.Arrange(new Rectangle(finalSize.Width - Padding.Right - m_VerticalScrollBar.MeasuredSize.Width, Padding.Top, m_VerticalScrollBar.MeasuredSize.Width, m_VerticalScrollBar.MeasuredSize.Height));
                scrollAreaWidth -= m_VerticalScrollBar.MeasuredSize.Width;
                m_HorizontalScrollBar.Arrange(new Rectangle(Padding.Left, finalSize.Height - Padding.Bottom - m_HorizontalScrollBar.MeasuredSize.Height, m_HorizontalScrollBar.MeasuredSize.Width, m_HorizontalScrollBar.MeasuredSize.Height));
                scrollAreaHeight -= m_HorizontalScrollBar.MeasuredSize.Height;
            }
            else if (!m_VerticalScrollBar.IsCollapsed)
            {
                m_VerticalScrollBar.Arrange(new Rectangle(finalSize.Width - Padding.Right - m_VerticalScrollBar.MeasuredSize.Width, Padding.Top, m_VerticalScrollBar.MeasuredSize.Width, m_VerticalScrollBar.MeasuredSize.Height));
                scrollAreaWidth -= m_VerticalScrollBar.MeasuredSize.Width;
            }
            else if (!m_HorizontalScrollBar.IsCollapsed)
            {
                m_HorizontalScrollBar.Arrange(new Rectangle(Padding.Left, finalSize.Height - Padding.Bottom - m_HorizontalScrollBar.MeasuredSize.Height, m_HorizontalScrollBar.MeasuredSize.Width, m_HorizontalScrollBar.MeasuredSize.Height));
                scrollAreaHeight -= m_HorizontalScrollBar.MeasuredSize.Height;
            }

            m_ScrollArea.Arrange(new Rectangle(Padding.Left, Padding.Top, scrollAreaWidth, scrollAreaHeight));

            UpdateScrollBars();

            return(finalSize);
        }