Wpf按钮单击多个按钮

时间:2015-12-07 16:01:38

标签: c# wpf xaml

我的应用程序中的按钮出现问题。 我正在使用矢量图形来渲染每个按钮,当单击时,我希望按钮能够执行简单的捏动动画以显示click事件的反馈。我有一个Button样式,它有一些关联的样式触发器,如果​​我将这个样式设置为按钮,则一切正常。 问题是许多按钮本身都有不同的样式,我想对所有按钮使用触发器。

我已尝试使用BasedOn属性,但我没有将其视为StaticResources和动态资源,我收到以下错误。 动态资源不能基于类型样式。

触发器的代码是

<Style x:Key="BtnTriggerOnClick" TargetType="Button">
    <Style.Triggers>
        <Trigger Property="IsPressed" Value="True">
            <Trigger.EnterActions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation From="1" To="0.8" RepeatBehavior="Forever" AutoReverse="True" Duration="00:00:00.6" Storyboard.TargetProperty="RenderTransform.ScaleX" />
                        <DoubleAnimation From="1" To="0.8" RepeatBehavior="Forever" AutoReverse="True" Duration="00:00:00.6" Storyboard.TargetProperty="RenderTransform.ScaleY" />
                    </Storyboard>
                </BeginStoryboard>
            </Trigger.EnterActions>
            <Trigger.ExitActions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation To="1" Duration="00:00:00.6" Storyboard.TargetProperty="RenderTransform.ScaleX" />
                        <DoubleAnimation To="1" Duration="00:00:00.6" Storyboard.TargetProperty="RenderTransform.ScaleY" />
                    </Storyboard>
                </BeginStoryboard>
            </Trigger.ExitActions>
        </Trigger>
    </Style.Triggers>
    <Setter Property="RenderTransform">
        <Setter.Value>
            <ScaleTransform CenterX="120" CenterY="30" ScaleX="1" ScaleY="1" />
        </Setter.Value>
    </Setter>

</Style>

我想提出的其中一个按钮是

<Style x:Key="ClearButtonStyle" TargetType="Button"  >
    <Setter Property="Foreground" Value="#B4B4B4" />
    <Setter Property="BorderBrush" Value="#333333" />
    <Setter Property="BorderThickness" Value="2" />
    <Setter Property="Margin" Value="10,2" />
    <Setter Property="FontSize" Value="20" />
    <Setter Property="Background">
        <Setter.Value>
            <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                <GradientStop Color="#333333" Offset="1" />
                <GradientStop Color="#777777" Offset="0" />
            </LinearGradientBrush>
        </Setter.Value>
    </Setter>
</Style>

0 个答案:

没有答案