Xaml — вертикальная полоса прокрутки в панели стека

У меня есть приложение wpf, и на панели настроек у меня есть множество элементов пользовательского интерфейса. Проблема в том, что когда я изменяю размер окна, некоторые из этих элементов больше не видны. Есть ли способ добавить простую вертикальную полосу прокрутки?

Я попробовал это ниже и добавил в него свой контент:

    <ScrollViewer VerticalScrollBarVisibility="Auto">
       <Grid>
          <StackPanel>
              //Content
          </StackPanel>
       </Grid>
    </ScrollViewer>

Я не уверен, правильно ли я поставил ScrollViewer, но я получил эту ошибку:

Ресурсы участника не распознаны или недоступны

и для этой ошибки я попытался заменить Page.Resources на Window.Resources, но это не помогло.

В любом случае, как я могу заставить мою вертикальную полосу прокрутки работать? Любая помощь?


person TheNewBegining    schedule 19.04.2017    source источник
comment
Можете ли вы предоставить подробную информацию о том, как вы добавили свои элементы управления? И я не уверен, что упомянутая вами ошибка связана с самим ScrollViewer. Может быть, показать больше кода?   -  person janonimus    schedule 19.04.2017


Ответы (2)


Проблема решена путем удаления свойств Width и Height со страницы.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Height="800" Width="1400"
      WindowTitle="ScrollViewer Sample">
  <ScrollViewer VerticalScrollBarVisibility="Auto">
     <Grid>
       <StackPanel>
          //Content
       </StackPanel>
     </Grid>
  </ScrollViewer>
</Page>
person TheNewBegining    schedule 19.04.2017

Вы должны избавиться от StackPanel. StackPanel измеряет своих дочерних элементов бесконечным пространством и поэтому не очень хорошо работает с полосами прокрутки:

Горизонтальная прокрутка для панели стека не работает

person mm8    schedule 19.04.2017
comment
Что бы вы использовали вместо этого? - person dgellow; 15.04.2021