Возникает ли событие, когда ListBox начинает прокручиваться?
В настоящее время у меня есть следующий код для обеспечения плавного перетаскивания из списка.
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" Margin="-5" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate >
<DataTemplate>
<Image ManipulationStarted="ListImage_ManipulationStarted" Tag="{Binding selfReference}" x:Name="ListImage" Margin="2.5" Stretch="Fill" Source="{Binding thumbnailURL}" Height="64" Width="64"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
И затемв коде
private void ListImage_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
if (dImage == null)
{
SoundEffectModel selectedModel = (sender as Image).Tag as SoundEffectModel;
int newIndex = listBoxSource.Items.IndexOf(selectedModel);
if (newIndex != -1)
{
listBoxSource.SelectedIndex = newIndex;
}
}
}
я дублирую выбранный элемент в списке и помещаю его непосредственно над текущим местоположением выбранного элемента.Все работает хорошо.
Однако, если пользователь начинает прокручивать listBox вместо перетаскивания элемента по приложению, дублированное изображение располагается поверх listBox и выглядит непрофессионально.Как только пользователь поднимает палец, дублированный элемент удаляется, потому что я могу обнаружить событие манипуляцииComplete и понять, что элемент находится в «неправильном месте».
Есть ли способ удалить меня?элемент, когда начинается прокрутка, вместо ожидания события манипуляцииComplete?
Связанные вопросы для context :