我有Tab控件,有两个选项卡,每个选项卡包含一个UserControl,UserControls与Transitions一起定义了Visual States。
我想解决的问题是,每当我更改活动标签时,即使控件 已经处于某种状态,Visual State Transition故事板也会运行,并且不需要改变。
我已经跟踪了这一事实,即更改选项卡会导致新显示的选项卡中的所有子UserControls的构造函数运行。有没有办法避免这种情况?
答案 0 :(得分:2)
这是因为每次更改选项卡项时,都会从VisualTree中卸载以前选项卡的内容。这里有很多关于此主题的讨论。请通过以下链接
WPF TabControl - Preventing Unload on Tab Change?
http://www.hardcodet.net/2008/01/wpf-loaded-event-fired-repeatedly
http://eric.burke.name/dotnetmania/2009/04/26/22.09.28
How to preserve control state within tab items in a TabControl
希望这有帮助
答案 1 :(得分:0)
事实证明,因为我绑定了Tab的Content
,它正在卸载和重新加载。更改为StaticResources
并使用DataContext
解决了我的问题。