При внесении изменений в AutoSuggestBox
переход к новым результатам поиска имеет анимацию, заставляющую строки прыгать/подпрыгивать. Мне не нужен этот эффект, вместо этого я хочу, чтобы новые результаты поиска отображались без анимации.
Итак, как можно отключить эту анимацию?
Вот как это выглядит по умолчанию с анимацией (и как мне это не нужно)
Знак AutoSuggestBox
обозначает ListView
для предложений. На самом деле эта анимация является анимацией ListView
. Следующий код должен отключить анимацию:
public MainPage()
{
this.InitializeComponent();
this.AutoSuggestBoxControl.Loaded += AutoSuggestBoxControl_Loaded;
}
private void AutoSuggestBoxControl_Loaded(object sender, RoutedEventArgs _)
{
if (sender is not AutoSuggestBox autoSuggestBox ||
VisualTreeHelper.GetChild(autoSuggestBox, 0) is not Grid grid ||
grid.Children.FirstOrDefault(gridChild => gridChild is Popup) is not Popup popup ||
popup.Child is not Border popupChildBorder ||
popupChildBorder.Child is not ListView popupListView)
{
return;
}
popupListView.ItemContainerTransitions = null;
}
ОБНОВЛЯТЬ
Если вы хотите сделать это в XAML:
<AutoSuggestBox
ItemsSource = "{x:Bind Cats}"
TextChanged = "AutoSuggestBoxControl_TextChanged">
<AutoSuggestBox.Resources>
<Style TargetType = "ListView">
<Setter Property = "ItemContainerTransitions">
<Setter.Value>
<TransitionCollection/>
</Setter.Value>
</Setter>
</Style>
</AutoSuggestBox.Resources>
</AutoSuggestBox>
во-первых, это работает, спасибо. Знаете ли вы, можно ли изменить это с помощью XAML или стиля вместо кода?
Но у меня он ведёт себя нормально с этим..