none
button被disable掉了后,如何设置背景是闪烁的? RRS feed

  • 问题

  • 没有disable时以前用convert改变背景色,但是现在disable掉了之后只能通过trigger改变背景色,我想让背景色1秒钟交替变色怎么做呢?
    2012年2月7日 7:01

答案

  • 我觉得这类东西你应该尝试写,一次之后以后的都会了,给你写个例子:

    <Style TargetType="{x:Type Button}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border x:Name="Overlay" CornerRadius="2">
                        <ContentPresenter/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter TargetName="Overlay" Property="Background" >
                                <Setter.Value>
                                    <SolidColorBrush Color="Black" />
                                </Setter.Value>
                            </Setter>
                            <Trigger.EnterActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                        <ColorAnimation Storyboard.TargetName="Overlay" Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" RepeatBehavior="Forever" From="Black" To="Red" Duration="0:0:0.2" AutoReverse="True"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </Trigger.EnterActions>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 a013strife 2012年2月13日 3:46
    2012年2月8日 11:59
    版主

全部回复

  • 这个只能拿到button的默认模板,然后重新写这个默认模板,改掉button disable后的状态。


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年2月8日 2:34
    版主
  • 方便的话搞下代码看看吧...
    triger产生闪烁的代码,最好是后台添加上去的,因为可以动态控制.
    • 已编辑 a013strife 2012年2月8日 3:13 补充
    2012年2月8日 3:12
  • 我觉得这类东西你应该尝试写,一次之后以后的都会了,给你写个例子:

    <Style TargetType="{x:Type Button}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border x:Name="Overlay" CornerRadius="2">
                        <ContentPresenter/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter TargetName="Overlay" Property="Background" >
                                <Setter.Value>
                                    <SolidColorBrush Color="Black" />
                                </Setter.Value>
                            </Setter>
                            <Trigger.EnterActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                        <ColorAnimation Storyboard.TargetName="Overlay" Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" RepeatBehavior="Forever" From="Black" To="Red" Duration="0:0:0.2" AutoReverse="True"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </Trigger.EnterActions>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 a013strife 2012年2月13日 3:46
    2012年2月8日 11:59
    版主
  • 请教版主,这个模版一般都用blend生成然后再改的吧?自己写那么多嵌套不太容易搞清楚啊

    2012年2月13日 3:05
  • 可以在blend中点edit template,也可以到MSDN上下载全套默认模板,然后自己改,再应用到自己的项目中。


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年2月13日 3:12
    版主