void SetScrollbar(ScrollbarStyle style) { // Save style _ScrollbarStyle = style; if (style == Misc.ScrollbarStyle.NONE) { if (Scrollbar != null) { // Remove scrollbar Scrollbar = null; // Let window react on the change Window.LayoutUpdate(true); } } else { // Create scrollbar if (Scrollbar == null) Scrollbar = new Scrollbar(this); // Set style Scrollbar.ScrollbarStyle = style; } }
public override Size GetPreferredSize() { if (ScrollbarStyle == Misc.ScrollbarStyle.NONE) return Layout.PreferredLayoutSize(this); else { // Override the containers layout size if (Scrollbar == null) Scrollbar = new Scrollbar(this); Size scrollsize = Scrollbar.GetScrollbarSize(); Size layoutsize = Layout.PreferredLayoutSize(this); Scrollbar.ContentSize = layoutsize; if (ScrollbarStyle == Misc.ScrollbarStyle.HORIZONTAL) { // Keep height return new Size(scrollsize.Width, layoutsize.Height); } else if (ScrollbarStyle == Misc.ScrollbarStyle.VERTICAL) { // Keep width return new Size(layoutsize.Width, scrollsize.Height); } else { return scrollsize; } } }