我有选项卡控件,有两个选项卡,每个选项卡都包含一个用户控件,用户控件具有与转换一起定义的视觉状态。
我想解决的问题是,每次我更改活动选项卡时,Visual State Transition 故事板都会运行,即使控件应该已经处于某种状态并且不需要更改。
我已经跟踪到这样一个事实,即更改选项卡会导致新可见选项卡中所有子用户控件的构造函数运行。有没有办法避免这种情况?
我有选项卡控件,有两个选项卡,每个选项卡都包含一个用户控件,用户控件具有与转换一起定义的视觉状态。
我想解决的问题是,每次我更改活动选项卡时,Visual State Transition 故事板都会运行,即使控件应该已经处于某种状态并且不需要更改。
我已经跟踪到这样一个事实,即更改选项卡会导致新可见选项卡中所有子用户控件的构造函数运行。有没有办法避免这种情况?
发生这种情况是因为每次更改选项卡项时,先前选项卡的内容都会从 VisualTree 中卸载。这里有很多关于此主题的讨论。请通过下面的链接
http://www.hardcodet.net/2008/01/wpf-loaded-event-fired-repeatedly
http://eric.burke.name/dotnetmania/2009/04/26/22.09.28
希望这可以帮助
事实证明,因为我绑定了Content
Tab 它正在卸载和重新加载。在我的情况下,切换到StaticResources
并使用DataContext
解决了这个问题。