public UIScrollWindow() { this.AutoSize = false; ScrollBar = new UIScrollBarWithArrows(); ScrollBar.DrawBounds = false; ScrollBar.ValueChanged += scrollBar_ValueChanged; ScrollPanel = new UIScrollPanel(); ScrollPanel.AutoSize = false; ScrollPanel.DrawBounds = false; ScrollPanel.AbsorbPointer = false; ScrollPanel.ContentScrolled += scrollPanel_ContentScrolled; ScrollBar.AddConstraint(Edge.Vertical | Edge.Right, this, Edge.Vertical | Edge.Right); ScrollPanel.AddConstraint(Edge.Vertical | Edge.Left, this, Edge.Vertical | Edge.Left); ScrollPanel.AddConstraint(Edge.Right, ScrollBar, Edge.Left); base.AddChild(ScrollBar); base.AddChild(ScrollPanel); }
public UIScrollWindow(ScrollBarMode mode = ScrollBarMode.Vertical) { this.mode = mode; AutoSize = false; DebugColor = Color.White; ScrollPanel = new UIScrollPanel(); ScrollPanel.AutoSize = true; ScrollPanel.DrawBounds = false; ScrollPanel.AbsorbPointer = false; ScrollPanel.AllowInsideScrolling = false; ScrollPanel.ContentScrolled += scrollPanel_ContentScrolled; if (mode == ScrollBarMode.Both) { fillerPanel = new UIPanel(); fillerPanel.Color = new Color(240, 240, 240); fillerPanel.AutoSize = false; fillerPanel.Size = new Vector2(16, 16); fillerPanel.Alpha = 1f; fillerPanel.AddConstraint(Edge.BottomRight, this, Edge.BottomRight); base.AddChild(fillerPanel); } if (mode.ContainsFlag(ScrollBarMode.Vertical)) { VerticalScrollBar = new UIScrollBar(UIScrollBar.ScrollBarOrientation.Vertical); VerticalScrollBar.ValueChanged += scrollBar_ValueChanged; VerticalScrollBar.Width = 16f; VerticalScrollBar.AddConstraint(Edge.TopRight, this, Edge.TopRight); if (fillerPanel != null) { VerticalScrollBar.AddConstraint(Edge.Bottom, fillerPanel, Edge.Top); } else { VerticalScrollBar.AddConstraint(Edge.Bottom, this, Edge.Bottom, mode.ContainsFlag(ScrollBarMode.Horizontal) ? VerticalScrollBar.Width : 0); } ScrollPanel.AddConstraint(Edge.Left, this, Edge.Left, 1); ScrollPanel.AddConstraint(Edge.Right, VerticalScrollBar, Edge.Left, -1); base.AddChild(VerticalScrollBar); } else { ScrollPanel.AddConstraint(Edge.Left, this, Edge.Left, 1); ScrollPanel.AddConstraint(Edge.Right, this, Edge.Right, -1); } if (mode.ContainsFlag(ScrollBarMode.Horizontal)) { HorizontalScrollBar = new UIScrollBar(UIScrollBar.ScrollBarOrientation.Horizontal); HorizontalScrollBar.ValueChanged += scrollBar_ValueChanged; HorizontalScrollBar.Height = 16f; HorizontalScrollBar.AddConstraint(Edge.BottomLeft, this, Edge.BottomLeft); if (fillerPanel != null) { HorizontalScrollBar.AddConstraint(Edge.Right, fillerPanel, Edge.Left); } else { HorizontalScrollBar.AddConstraint(Edge.Right, this, Edge.Right, mode.ContainsFlag(ScrollBarMode.Vertical) ? HorizontalScrollBar.Height : 0); } ScrollPanel.AddConstraint(Edge.Top, this, Edge.Top, 1); ScrollPanel.AddConstraint(Edge.Bottom, HorizontalScrollBar, Edge.Top, -1); base.AddChild(HorizontalScrollBar); } else { ScrollPanel.AddConstraint(Edge.Top, this, Edge.Top, 1); ScrollPanel.AddConstraint(Edge.Bottom, this, Edge.Bottom, -1); } base.AddChild(ScrollPanel); }