private void RecalculateScrollBar() { float realHeight = m_label.GetSize().Y; bool vScrollbarVisible = Size.Y < realHeight; m_scrollbar.Visible = vScrollbarVisible; m_scrollbar.Init(realHeight, Size.Y); m_scrollbar.Layout(new Vector2(0.5f * Size.X - m_scrollbar.Size.X, -0.5f * Size.Y), Size.Y); if (!m_drawScrollbar) { if (TextAlign == MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_BOTTOM || TextAlign == MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_BOTTOM || TextAlign == MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM) { //m_scrollbar.Value = realHeight; m_scrollbar.Value = 0; } else if (TextAlign == MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP || TextAlign == MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_TOP || TextAlign == MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_TOP) { //m_scrollbar.Value = 0; m_scrollbar.Value = realHeight; } } }
private void RefreshScrollbar() { if (ScrolledControl != null) { if (m_scrollbarV != null) { m_scrollbarV.Visible = m_scrolledArea.Size.Y < ScrolledControl.Size.Y; if (m_scrollbarV.Visible) { m_scrollbarV.Init(ScrolledControl.Size.Y, m_scrolledArea.Size.Y); var posTopRight = Size * new Vector2(0.5f, -0.5f); var position = new Vector2(posTopRight.X - m_scrollbarV.Size.X, posTopRight.Y); m_scrollbarV.Layout(position + new Vector2(0.0f, m_scrolledAreaPadding.Top), m_scrolledArea.Size.Y); } else { m_scrollbarV.Value = 0f; } } if (m_scrollbarH != null) { m_scrollbarH.Visible = m_scrolledArea.Size.X < ScrolledControl.Size.X; if (m_scrollbarH.Visible) { m_scrollbarH.Init(ScrolledControl.Size.X, m_scrolledArea.Size.X); var posBottomLeft = Size * new Vector2(-0.5f, 0.5f); var position = new Vector2(posBottomLeft.X, posBottomLeft.Y - m_scrollbarH.Size.Y + ScrollBarOffset.Y); m_scrollbarH.Layout(position + new Vector2(m_scrolledAreaPadding.Left), m_scrolledArea.Size.X); } else { m_scrollbarH.Value = 0f; } } } else { if (m_scrollbarV != null) { m_scrollbarV.Visible = false; } if (m_scrollbarH != null) { m_scrollbarH.Visible = false; } } RefreshScrolledControlPosition(); }
private void RefreshScrollBar() { int visibleItems = 0; foreach (var item in Items) { if (item.Visible) { visibleItems++; } } m_scrollBar.Visible = visibleItems > VisibleRowsCount; m_scrollBar.Init((float)visibleItems, (float)VisibleRowsCount); var posTopRight = Size * new Vector2(0.5f, -0.5f); var margin = m_styleDef.ScrollbarMargin; var position = new Vector2(posTopRight.X - (margin.Right + m_scrollBar.Size.X), posTopRight.Y + margin.Top); m_scrollBar.Layout(position, Size.Y - margin.VerticalSum); }