簡體   English   中英

具有結果數據觸發情節提要和鼠標懸停背景的WPF按鈕

[英]Wpf button with both result datatrigger storyboard and mouseover background

我正在尋求實現此功能:綁定到命令的按鈕,可以以紅色或綠色閃爍的形式向后發信號通知命令是否成功。 同時,我希望該按鈕看起來像其他按鈕。

這是我現在擁有的代碼:

 <Button IsEnabled="{Binding EmptyingAllowed}" Content="Töm lista" Foreground="#555555" FontWeight="SemiBold" Height="20" Width="65" Command="{Binding EmptyListCommand}" >
        <Button.Style>
            <Style TargetType="Button">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            <Border BorderBrush="#BBBBBB" Padding="1" BorderThickness="0,0,1,1" Background="#DDDDDD">
                                    <Grid Background="{TemplateBinding Background}">
                                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                                    </Grid>
                                </Border>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ClearedOk}" Value="Ok">
                            <DataTrigger.EnterActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                        <ColorAnimation AccelerationRatio="0.2" DecelerationRatio="0.01" AutoReverse="True" Duration="0:0:1" To="LawnGreen" Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </DataTrigger.EnterActions>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding ClearedOk}" Value="Error">
                            <DataTrigger.EnterActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                        <ColorAnimation  AccelerationRatio="0.2" DecelerationRatio="0.01" AutoReverse="True" Duration="0:0:1" To="Red" Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </DataTrigger.EnterActions>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Button.Style>
        </Button>

執行命令時,將ClearedOk設置為“ Ok”或“ Error”,然后設置為“ Empty”,這會導致我正在尋找的閃存,不幸的是,由於某些原因,失去了通常的mouseOver-effect,如果我添加mouseOver-trigger,它始終優先於閃爍效果,這意味着僅按鈕可見的閃爍不是mouseOver:ed。

有針對這個的解決方法嗎?

嘗試使數據模板和模型具有狀態屬性,然后將模板綁定到該屬性。

 <DataTemplate x:Key="DataTemplate">
        <Grid >
            <Ellipse Stroke="White"
                     StrokeThickness="5"
                     Fill="{Binding State, Converter={StaticResource CheckToColorConverter}}"/>
        </Grid>
    </DataTemplate>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM