ScrollViewer внутри всплывающего окна ComboBox переполняется с самого начала при использовании сенсорного ввода - PullRequest
0 голосов
/ 08 мая 2020

У меня есть ScrollViewer, вложенный во всплывающее окно ComboBox. Я считаю, что это стандартный дизайн. Даже без установки DependencyProperties этот ScrollViewer имеет своеобразное поведение при прокрутке с помощью сенсорного жеста.

Когда я использую сенсорный ввод и достигаю конца ComboBoxItems внутри вышеупомянутого всплывающего окна, ScrollBar перемещается назад до начала всплывающего окна и продолжает прокрутку. Вот так: enter image description here

Я пришел к выводу, что это стандартное поведение. Как видите, английский sh - первый язык в списке, поли sh и болгарский - последние языки в списке. Подскажите, пожалуйста, как называется такое поведение? Можно ли его отключить?

Я бы опубликовал стиль ComboBox, но я не думаю, что это имеет значение, потому что его структура в значительной степени соответствует стилю по умолчанию из: C: \ Program Files (x86 ) \ Windows Kits \ 10 \ DesignTime \ CommonConfiguration \ Neutral \ UAP \ 10.0.18362.0 \ Generic \ generi c. html

Заранее спасибо!

1 Ответ

1 голос
/ 11 мая 2020

Когда я использую сенсорный ввод и достигаю конца ComboBoxItems внутри вышеупомянутого всплывающего окна, ScrollBar перемещается обратно в начало всплывающего окна и продолжает прокрутку

Это намеренно в пределах ComboBox управление для сенсорной модели. ComboBox используйте CarouselPanel как ItemsPanel по умолчанию. Это заставит список l oop прокручиваться. Если вы хотите отключить эту функцию, замените CarouselPanel на StackPanel.

<ComboBox.ItemsPanel>
   <ItemsPanelTemplate>
      <StackPanel Orientation="Vertical" />
   </ItemsPanelTemplate>
</ComboBox.ItemsPanel> 
...