Направих хоризонтален списък и го изпълнихданни и задайте елемента по подразбиране, който е "извън" на екрана. След това призовах метода ScrollIntoView, но нищо не се случва. Какво съм направил погрешно?
Свързана част от моя XAML (мисля, че проблемът е някъде тук):
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.Template>
<ControlTemplate TargetType="ItemsControl">
<ScrollViewer HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Disabled">
<ItemsPresenter x:Name="itemsPresenter" />
</ScrollViewer>
</ControlTemplate>
</ListBox.Template>
И C # код:
reservationsListBox.SelectedIndex = 40;
reservationsListBox.ScrollIntoView(reservationsListBox.Items[reservationsListBox.SelectedIndex]);
Отговори:
0 за отговор № 1Във вашия ControlTemplate ScrollViewer се нуждае от x: Name = "ScrollViewer".
<ListBox.Template>
<ControlTemplate TargetType="ItemsControl">
<ScrollViewer x:Name="ScrollViewer" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Disabled">
<ItemsPresenter x:Name="itemsPresenter" />
</ScrollViewer>
</ControlTemplate>
</ListBox.Template>
В противен случай функцията ScrollIntoView не може да намери зрителя за превъртане.