Как добавить полосу прокрутки в окно в C#
Я создал окно следующим образом:
Window myWindow = new Window();
Как добавить вертикальную полосу прокрутки в это окно и сделать полосу прокрутки видимой, только если высота недостаточно велика, чтобы показать все элементы.
3 ответов
вы можете добавить ScrollViewer элемент в вашем окне и поместите необходимые элементы управления в ScrollViewer управление.
<ScrollViewer VerticalScrollBarVisibility="Auto">
...
</ScrollViewer>
или, если вы хотите закодировать его в файле кода, Вы можете написать
ScrollViewer viewer = new ScrollViewer();
viewer.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
// append scroll viewer to window
вы не можете добавить полосу прокрутки в само окно. В элементы управления можно добавлять только полосы прокрутки. И. Е. К решетке внутри вашего окна.
пример:
<Grid ScrollViewer.CanContentScroll="True"
ScrollViewer.HorizontalScrollBarVisibility="Auto">
...
</Grid>
EDIT:
только что понял, что окно также имеет свойство ScrollViewer. Я не уверен, как это свойство работает для окна и как такое окно будет выглядеть. Попробовал, но полосы прокрутки не отображаются.
EDIT 2:
ScrollViewer sv = new ScrollViewer();
sv.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
myGrid.Children.Add(sv);
попробуй такое
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 };
}