WPF Listbox прокрутите вниз - PullRequest
       15

WPF Listbox прокрутите вниз

2 голосов
/ 16 марта 2009

Допустим, у меня есть список с множеством элементов, так что появляется вертикальная прокрутка, но я спрятал полосу прокрутки с помощью

ScrollViewer.VerticalScrollBarVisibility="Hidden"

Можно ли как-нибудь добавить кнопку, которая будет прокручиваться для меня? iv попытался добавить

Command="ScrollBar.LineDownCommand" 

к кнопке, но это не имело никакого эффекта.

Ответы [ 2 ]

4 голосов
/ 16 марта 2009

Вам нужно указать WPF, с чего начать поиск командного обработчика. Не сказав этого, он начнет смотреть с Button и не найдет ничего, что обрабатывает LineDownCommand. К сожалению, установки ListBox будет недостаточно, поскольку ScrollViewer это внутри ListBox как часть его шаблона, поэтому WPF все равно не найдет его.

Установка его на один из ListBoxItem s недействительна, но работает:

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>

        <ListBox x:Name="_listBox" ScrollViewer.VerticalScrollBarVisibility="Hidden">
            <ListBoxItem x:Name="_listBoxItem">One</ListBoxItem>
            <ListBoxItem>Two</ListBoxItem>
            <ListBoxItem>Three</ListBoxItem>
            <ListBoxItem>One</ListBoxItem>
            <ListBoxItem>Two</ListBoxItem>
            <ListBoxItem>Three</ListBoxItem>
            <ListBoxItem>One</ListBoxItem>
            <ListBoxItem>Two</ListBoxItem>
            <ListBoxItem>Three</ListBoxItem>
            <ListBoxItem>One</ListBoxItem>
            <ListBoxItem>Two</ListBoxItem>
            <ListBoxItem>Three</ListBoxItem>
        </ListBox>
        <Button Grid.Row="1" Command="ScrollBar.LineDownCommand" CommandTarget="{Binding ElementName=_listBoxItem}">Scroll Down</Button>
    </Grid>
</Window>

Лучшим способом сделать это было бы либо изменить шаблон ListBox и вставить Button внутри шаблона, либо подключить CommandTarget в коде позади.

0 голосов
/ 17 марта 2009

У меня было приложение, в котором я хотел вручную прокручивать ScrollViewer. По сути, я получил ссылку на ScrollViewer, а затем использовал метод ScrollToHorizontOffset () для управления прокруткой. Ниже приведены сообщения в блоге, где я объясняю процесс, который я использовал:

http://www.developingfor.net/wpf/fun-with-the-wpf-scrollviewer.html

http://www.developingfor.net/wpf/more-fun-with-wpf-scrollviewer.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...