WPF: ItemsControl с полосой прокрутки (ScrollViewer)

Я следовал этому маленькому "учебному руководству" о том, как добавить полосу прокрутки к ItemsControl, и оно работает в представлении Designer, но не, когда я компилирую и выполняю программу (только первые несколько объектов обнаруживаются, и никакая полоса прокрутки для просмотра более - даже когда VerticalScrollbarVisibility установлен на "Видимый" вместо "Автоматического").

Какая-либо идея о том, как решить это?


Это - код, который я использую для показа моих объектов (обычно, я работаю с Привязкой данных, но видеть объекты в моем Разработчике я добавил их вручную):


    
        
            
            
        
    

    
    
    
    
    


И это - мой Шаблон:


125
задан Xuntar 8 January 2010 в 15:31
поделиться

2 ответа

Чтобы получить полосу прокрутки для ItemsControl , вы можете разместить ее в ScrollViewer следующим образом:

<ScrollViewer VerticalScrollBarVisibility="Auto">
  <ItemsControl>
    <uc:UcSpeler />
    <uc:UcSpeler />
    <uc:UcSpeler />
    <uc:UcSpeler />
    <uc:UcSpeler />
  </ItemsControl>
</ScrollViewer>
253
ответ дан 24 November 2019 в 00:57
поделиться

Вам необходимо изменить шаблон элемента управления вместо ItemsPanelTemplate:

<ItemsControl >
    <ItemsControl.Template>
        <ControlTemplate>
            <ScrollViewer x:Name="ScrollViewer" Padding="{TemplateBinding Padding}">
                <ItemsPresenter />
            </ScrollViewer>
        </ControlTemplate>
    </ItemsControl.Template>
</ItemsControl>

Возможно, ваш код не работает, потому что StackPanel имеет собственные функции прокрутки. Попробуйте использовать свойство StackPanel.CanVerticalScroll .

73
ответ дан 24 November 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: