如何禁用AutoSuggestBox项变更时的动画效果?
禁用AutoSuggestBox搜索结果切换动画
AutoSuggestBox默认的搜索结果切换动画由控件模板中的过渡动画(EntranceThemeTransition和RepositionThemeTransition)实现,要取消动画直接显示新结果,可通过以下两种方式操作:
方法一:修改控件模板(XAML)
- 在Visual Studio中右键AutoSuggestBox控件,选择「编辑模板」→「编辑副本」,生成包含默认样式的XAML代码。
- 在生成的模板里找到名为
ItemsPresenter的元素,删除其Transition属性绑定的动画资源,或者直接将Transition设为{x:Null}:<!-- 修改后无动画的ItemsPresenter示例 --> <ItemsPresenter x:Name="ItemsPresenter" Margin="{ThemeResource AutoSuggestBoxSuggestionsItemsPresenterMargin}" Transition="{x:Null}" ScrollViewer.HorizontalScrollMode="Disabled" ScrollViewer.VerticalScrollMode="Auto" /> - 将修改后的样式应用到目标AutoSuggestBox即可。
方法二:代码后台移除动画
在AutoSuggestBox加载完成后,通过代码找到模板内的ItemsPresenter并清空其过渡动画:
private void AutoSuggestBox_Loaded(object sender, RoutedEventArgs e) { if (sender is AutoSuggestBox autoSuggestBox) { var itemsPresenter = autoSuggestBox.Template.FindName("ItemsPresenter", autoSuggestBox) as ItemsPresenter; itemsPresenter?.Transition = null; } }
两种方式都能完全禁用搜索结果切换时的跳动动画,让新结果直接显示。
内容的提问来源于stack exchange,提问作者me.at.coding
相关产品推荐
相关产品推荐

