从 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 复选框的动画行为?
- 打开混合
- 创建一个新项目
- 添加复选框
- 右击它"Edit copy of the style"
- 进入XAML
- 删除有问题的项目符号装饰器
- 复制
<X.Resources>...</X.Resources>
中的所有XAML
- 将刚刚复制的XAML粘贴到
<Root.Resources>...</Root.Resources>
示例:
<Grid.Resources>
<Style x:Key="MyCheckBoxStyle" TargetType="{x:Type CheckBox}">
...
</Style>
</Grid.Resources>
- 在树的 HierarchicalDataTemplate 中,您应该将样式应用于复选框
我有一个巨大的(5000 多个项目)TreeView,它显示了一系列嵌套的复选框。当父复选框被选中时,所有子项也会被选中。我分析了逻辑,点击传播基本上立即发生,但渲染需要几秒钟。
我已将范围缩小到 BulletDecorator 在点击动画上执行的动画。
我想基本上修改复选框的行为以实现零动画。我该怎么做呢?我正在考虑从 CheckBox 继承并添加一个 "AnimationEnabled" DependencyProperty 来切换 BulletDecorator 的动画。
我找到了这个 link,但我不知道如何实际修改行为或重新定义 BulletDecorator:
https://msdn.microsoft.com/en-us/library/ms752319(v=vs.85).aspx
如何修改标准 Wpf 复选框的动画行为?
- 打开混合
- 创建一个新项目
- 添加复选框
- 右击它"Edit copy of the style"
- 进入XAML
- 删除有问题的项目符号装饰器
- 复制
<X.Resources>...</X.Resources>
中的所有XAML
- 将刚刚复制的XAML粘贴到
<Root.Resources>...</Root.Resources>
示例:
<Grid.Resources>
<Style x:Key="MyCheckBoxStyle" TargetType="{x:Type CheckBox}">
...
</Style>
</Grid.Resources>
- 在树的 HierarchicalDataTemplate 中,您应该将样式应用于复选框