RepeatButton не прокручивает список
У меня есть ListBox внутри ScrollViewer и хочу прокрутить его, когда пользователь нажимает пользовательскую RepeatButton. Проблема в том, что RepeatButton работает только тогда, когда HorizontalScrollBarVisibility скрыт, но это вызывает другую проблему: после прокрутки списка и выбора одного элемента, он сразу же переходит к первому элементу и показывает его. Итак, я отключил его и просто использую ScrollViewer.HorizontScrollBarVisibility="Hidden" из ListBox. Как я могу работать с этими кнопками Repeat?
Вот код:
<ScrollViewer Width="582.5" x:Name="scrollViewer" HorizontalAlignment="Center" Background="Transparent" VerticalAlignment="Bottom" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Disabled" >
<ListBox x:Name="listBox" SelectionMode="Single" Visibility="Visible" IsEnabled="True" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Hidden" HorizontalAlignment="Center" Background="Transparent" BorderBrush="Transparent" SelectionChanged="listBox_SelectionChanged" ItemsSource="{Binding Source={StaticResource TypeTable}}" HorizontalContentAlignment="Center" RenderTransformOrigin="0.5,0.5" Padding="0,0,0,90" >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel x:Name="stackPanel2" CanHorizontallyScroll="True" Orientation="Horizontal" HorizontalAlignment="Right" Height="180" Width="180" >
<Image Margin="3" Source="{Binding pic_path}" RenderOptions.BitmapScalingMode="Fant" RenderOptions.EdgeMode="Aliased"/>
<TextBox Margin="3" Text="{Binding name}" Visibility="Visible"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
<!--arrow keys-->
<RepeatButton x:Name="RepeatButton3" Visibility="Hidden" Background="Blue" IsEnabled="False" Height="180" Width="80" Margin="700,1070,0,0" Command="{x:Static ScrollBar.LineRightCommand}" CommandTarget="{Binding ElementName=listBox}" ClickMode="Press">
<RepeatButton.Template>
<ControlTemplate>
<DockPanel>
<Image Opacity="0.9" Source="images\icons\lowerMenuRight.png" />
<ContentPresenter />
</DockPanel>
</ControlTemplate>
</RepeatButton.Template>
</RepeatButton>
<RepeatButton x:Name="RepeatButton4" Visibility="Hidden" Background="Blue" IsEnabled="False" Height="180" Width="80" Margin="0,1070,700,0" Command="{x:Static ScrollBar.LineLeftCommand}" CommandTarget="{Binding ElementName=listBox}" ClickMode="Press">
<RepeatButton.Template>
<ControlTemplate>
<DockPanel>
<Image Opacity="0.9" Source="images\icons\lowerMenuLeft.png" />
<ContentPresenter />
</DockPanel>
</ControlTemplate>
</RepeatButton.Template>
</RepeatButton>