How to Add a Scrollbar to Window in C#

妖精的绣舞 提交于 2019-12-03 23:23:26

问题


I have created a window as follows:

Window myWindow = new Window();

How can I add a Vertical Scroll Bar to this Windows and make the Scroll Bar only visible if the Height isn't large enough to show all the elements.


回答1:


You could add a ScrollViewer element to your window and put the necessary controls into the ScrollViewer control.

<ScrollViewer VerticalScrollBarVisibility="Auto">
    ...
</ScrollViewer>

Or if you want to code it in the code-behind file you could write

ScrollViewer viewer = new ScrollViewer();
viewer.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
// append scroll viewer to window



回答2:


You cannot add a scrollbar to a window itself. You can only add scrollbars to controls. I.E. to a grid inside your window.

Example:

<Grid  ScrollViewer.CanContentScroll="True"
       ScrollViewer.HorizontalScrollBarVisibility="Auto">
   ...
</Grid>

EDIT:

Just realized that Window also has a ScrollViewer property. I'm not sure how this property works for a Window and how such a window would look like. Gave it a try, but no scrollbars show up.

EDIT 2:

ScrollViewer sv = new ScrollViewer();
sv.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
myGrid.Children.Add(sv);



回答3:


try this

var xpage = your user control or page to which scroll bar need to be added at runtime

            xpage.SetValue(ScrollViewer.CanContentScrollProperty, true);
            xpage.SetValue(ScrollViewer.HorizontalScrollBarVisibilityProperty, ScrollBarVisibility.Auto);
            xpage.SetValue(ScrollViewer.VerticalScrollBarVisibilityProperty, ScrollBarVisibility.Auto);

            var scrollViewer = xpage.Content as ScrollViewer;
            if (scrollViewer != null)
            {
                var content = scrollViewer.Content;
                scrollViewer.Content = null;
                xpage.Content = content;
            }
            else
            {
                var content = xpage.Content;
                xpage.Content = null;
                xpage.Content = new ScrollViewer { Content = content };
            }


来源:https://stackoverflow.com/questions/6068860/how-to-add-a-scrollbar-to-window-in-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!