从 Wpf 复选框中删除动画

Removing Animation from Wpf Checkbox

我有一个巨大的(5000 多个项目)TreeView,它显示了一系列嵌套的复选框。当父复选框被选中时,所有子项也会被选中。我分析了逻辑,点击传播基本上立即发生,但渲染需要几秒钟。

我已将范围缩小到 BulletDecorator 在点击动画上执行的动画。

我想基本上修改复选框的行为以实现零动画。我该怎么做呢?我正在考虑从 CheckBox 继承并添加一个 "AnimationEnabled" DependencyProperty 来切换 BulletDecorator 的动画。

我找到了这个 link,但我不知道如何实际修改行为或重新定义 BulletDecorator:

https://msdn.microsoft.com/en-us/library/ms752319(v=vs.85).aspx

如何修改标准 Wpf 复选框的动画行为?

  1. 打开混合
  2. 创建一个新项目
  3. 添加复选框
  4. 右击它"Edit copy of the style"
  5. 进入XAML
  6. 删除有问题的项目符号装饰器
  7. 复制<X.Resources>...</X.Resources>
  8. 中的所有XAML
  9. 将刚刚复制的XAML粘贴到

<Root.Resources>...</Root.Resources>

示例:

<Grid.Resources> <Style x:Key="MyCheckBoxStyle" TargetType="{x:Type CheckBox}"> ... </Style> </Grid.Resources>

  1. 在树的 HierarchicalDataTemplate 中,您应该将样式应用于复选框