Я создал окно следующим образом:
Window myWindow = new Window();
Как добавить вертикальную полосу прокрутки в эту Windows и сделать панель прокрутки видимой только в том случае, если высота недостаточно велика, чтобы показать все элементы.
Я создал окно следующим образом:
Window myWindow = new Window();
Как добавить вертикальную полосу прокрутки в эту Windows и сделать панель прокрутки видимой только в том случае, если высота недостаточно велика, чтобы показать все элементы.
Вы можете добавить элемент 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:
Просто понял, что Window также имеет свойство ScrollViewer. Я не уверен, как это свойство работает для Window и как выглядит такое окно. Попробовал, но никаких полос прокрутки не появилось.
ИЗМЕНИТЬ 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 };
}