Проблема анимации при наведении на WPF Toggle-Button - PullRequest
0 голосов
/ 12 июня 2019

В своем приложении WPF я создал 3 разных стиля кнопок.Я хотел бы добавить цветную анимацию в любое время, когда наведена кнопка, поэтому с помощью триггеров событий и раскадровок Color Animation это то, что я сделал;
Кстати, в каждой из кнопок переключения есть изображениеstyles.

Стиль кнопки переключения

<Style x:Key="ExeatKey" TargetType="ToggleButton">
            <Setter Property="Foreground" Value="#B2B2B2"/>
            <Setter Property="BorderThickness" Value="0"/>
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="Margin" Value="0 0 0 0"/>
            <Setter Property="ContentTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <Grid Margin="0 0 0 0" VerticalAlignment="Center" HorizontalAlignment="Center">
                            <Image Margin="0 10 0 30">

                                <!--Image Change Colour Trigger-->
                                <Image.Style>
                                    <Style TargetType="{x:Type Image}">
                                        <Style.Triggers>
                                            <DataTrigger Binding="{Binding ElementName=takeExeatBtn, Path=IsChecked}" Value="True">
                                                <Setter Property="Source" Value="/Images/Others/Button Icons/ex_blu.png"/>
                                            </DataTrigger>
                                            <DataTrigger Binding="{Binding ElementName=takeExeatBtn, Path=IsChecked}" Value="False">
                                                <Setter Property="Source" Value="/Images/Others/Button Icons/ex_gray.png"/>
                                            </DataTrigger>
                                        </Style.Triggers>
                                    </Style>
                                </Image.Style>

                            </Image>
                            <TextBlock Text="Take An Exeat" TextAlignment="Center" FontSize="20" Margin="0 58 0 0" FontWeight="SemiBold"/>
                        </Grid>
                    </DataTemplate>
                </Setter.Value>
            </Setter>

            <Style.Triggers>
                <EventTrigger RoutedEvent="MouseEnter">
                    <BeginStoryboard>
                        <Storyboard>
                            <ColorAnimation To="#BCD0E8" Duration="0:0:0.5" Storyboard.TargetProperty="Background.Color"/>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
                <EventTrigger RoutedEvent="MouseLeave">
                    <BeginStoryboard>
                        <Storyboard>
                            <ColorAnimation To="Transparent" Duration="0:0:0.5" Storyboard.TargetProperty="Background.Color"/>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Cursor" Value="Hand"/>
                </Trigger>
                <Trigger Property="IsPressed" Value="True">
                    <Setter Property="Cursor" Value="Hand"/>
                    <Setter Property="Background" Value="#BCD0E8"/>
                    <Setter Property="Foreground" Value="#5050EA"/>
                </Trigger>
                <Trigger Property="IsChecked" Value="True">
                    <Setter Property="Cursor" Value="Arrow"/>
                    <Setter Property="Background" Value="#BCD0E8"/>
                    <Setter Property="Foreground" Value="#7878FF"/>
                </Trigger>
            </Style.Triggers>
        </Style>

Естественно, я подумал, что это будет работать, но всякий раз, когда мышь входит, она не анимирует, только MouseLeave работает.
Есть что-то, что я пропустил в коде?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...