2

为什么动画在折叠控件而不是隐藏控件上失败?

具体来说,在 WPF 中,我有一个带有动画的自定义复选框,可见性动态链接到“setVisible”资源元素(非常简化,如下所示)。

<local:MyCheckBox x:Name="checkNonVisual" Visibility="{DynamicResource setVisible}" />

在代码中,我将 checkNonVisual 的值设置为 true、false 或 null,这会在复选框上触发一个小动画。

这在元素/“setVisible”资源元素的可见性设置为 Visibility.Visible 和 Visibility.Hidden 时有效,但当可见性设置为 Visibility.Collapsed 时它会崩溃,并显示以下错误。

谁能解释我为什么在可见性折叠时动画失败以及为什么在可见性隐藏时动画没有失败?

如果我想继续使用折叠,如何防止动画运行,使其不再崩溃?

Stacktrace 的摘录:

System.InvalidOperationException 未处理
Message='Check' 名称无法在“System.Windows.Controls.ControlTemplate”的名称范围内找到。
来源=PresentationFramework

堆栈跟踪:

在 System.Windows.Media.Animation.Storyboard.ResolveTargetName(字符串 targetName,INameScope nameScope,DependencyObject 元素)

在 System.Windows.Media.Animation.Storyboard.ClockTreeWalkRecursive(时钟 currentClock,DependencyObject containsObject,INameScope nameScope,DependencyObject parentObject,String parentObjectName,PropertyPath parentPropertyPath,HandoffBehavior handoffBehavior,HybridDictionary clockMappings,Int64 层)

[...]

在 System.Windows.UIElement.RaiseEvent(RoutedEventArgs e) 在 System.Windows.Controls.Primitives.ToggleButton.OnChecked(RoutedEventArgs e)

[...]

4

0 回答 0