微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

材质设计WPF:禁用复选框动画

如何解决材质设计WPF:禁用复选框动画

如何在MaterialDesignInXAML中禁用圆形/波纹复选框动画?

enter image description here


我尝试了以下设置,但没有成功:

md:RippleAssist.Isdisabled="True"
md:RippleAssist.Feedback="Transparent"
md:TransitionAssist.disableTransitions="True"

解决方法

假设您喜欢其中的所有其他功能,那么我认为您需要重新创建模板。

如果您在此处查看materialdesigninxaml的来源:

https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit/blob/master/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.CheckBox.xaml

(这很庞大,或者我都将其粘贴在这里。)

您会注意到有一个称为“ InteractionEllipse”的椭圆。您可以复制模板并将其撕掉。

                            <Ellipse x:Name="InteractionEllipse" Fill="{TemplateBinding Foreground}" Width="0" Height="0" Canvas.Top="12" Canvas.Left="12" Opacity="0" RenderTransformOrigin="0.5,0.5"
                                     IsHitTestVisible="False">
                                <Ellipse.RenderTransform>
                                    <TransformGroup>
                                        <ScaleTransform/>
                                        <SkewTransform/>
                                        <RotateTransform/>
                                        <TranslateTransform/>
                                    </TransformGroup>
                                </Ellipse.RenderTransform>
                            </Ellipse>

点击时会调用一个情节提要,您需要进行修改。也许只是删除。

                    <Storyboard x:Key="Click">
                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Width)" Storyboard.TargetName="InteractionEllipse">
                            <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                            <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="48"/>
                        </DoubleAnimationUsingKeyFrames>
                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Height)" Storyboard.TargetName="InteractionEllipse">
                            <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                            <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="48"/>
                        </DoubleAnimationUsingKeyFrames>
                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)" Storyboard.TargetName="InteractionEllipse">
                            <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                            <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="-24"/>
                        </DoubleAnimationUsingKeyFrames>
                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" Storyboard.TargetName="InteractionEllipse">
                            <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                            <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="-24"/>
                        </DoubleAnimationUsingKeyFrames>
                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="InteractionEllipse">
                            <EasingDoubleKeyFrame KeyTime="0" Value="0.3"/>
                            <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0"/>
                        </DoubleAnimationUsingKeyFrames>
                    </Storyboard>

然后要么在所选的复选框上使用新模板,要么从材料设计材料合并后的资源字典中使用自己的模板“覆盖”它们的版本。

或者。

您也许可以使用其他画笔进行填充。您可以添加附加的依赖项属性或动态资源。这样,您可以为部分或全部复选框选择透明,而我认为它会消失。

它的模板绑定到前景

  Fill="{TemplateBinding Foreground}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。