Dim
Dim

Reputation: 4837

On mouse over does not trigger animation

I have small issue, everything works excepts when I enter the mouse on, when I leave the background changes, but when I set it over it not changing from white to my color.

<!-- ComboBox: Item Triggers -->
    <Style TargetType="{x:Type ComboBoxItem}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ComboBoxItem}">

                    <Border Name="Border" CornerRadius="0" BorderThickness="0" Focusable="False" BorderBrush="Transparent" Background="White">
                        <Grid  VerticalAlignment="Center" HorizontalAlignment="Center">
                            <ContentPresenter VerticalAlignment="Center" />
                        </Grid>
                    </Border>

                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="true">
                            <Setter Property="Foreground" Value="White" />
                        </Trigger>
                        <EventTrigger RoutedEvent="MouseEnter">
                            <BeginStoryboard>
                                <Storyboard>
                                    <ColorAnimation From="White" To="#52b0ca" Duration="0:0:0.5" Storyboard.TargetName="Border" Storyboard.TargetProperty="Background.Color"/>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                        <EventTrigger RoutedEvent="MouseLeave">
                            <BeginStoryboard>
                                <Storyboard>
                                    <ColorAnimation From="#52b0ca" To="White" Duration="0:0:0.5" Storyboard.TargetName="Border" Storyboard.TargetProperty="Background.Color"/>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Upvotes: 0

Views: 686

Answers (1)

dkozl
dkozl

Reputation: 33384

Looks like something is handling MouseEnter event so I would suggest to use TriggerBase.EnterActions and TriggerBase.ExitActions instead:

<ControlTemplate TargetType="{x:Type ComboBoxItem}">
   <Border Name="Border" CornerRadius="0" BorderThickness="0" Focusable="False" BorderBrush="Transparent" Background="White">
      <Grid  VerticalAlignment="Center" HorizontalAlignment="Center">
         <ContentPresenter VerticalAlignment="Center" />
      </Grid>
   </Border>
   <ControlTemplate.Triggers>
      <Trigger Property="IsMouseOver" Value="true">
         <Setter Property="Foreground" Value="White" />
         <Trigger.EnterActions>
            <BeginStoryboard>
               <Storyboard>
                  <ColorAnimation From="White" To="#52b0ca" Duration="0:0:0.5" Storyboard.TargetName="Border" Storyboard.TargetProperty="Background.Color"/>
               </Storyboard>
            </BeginStoryboard>
         </Trigger.EnterActions>
         <Trigger.ExitActions>
            <BeginStoryboard>
               <Storyboard>
                  <ColorAnimation From="#52b0ca" To="White" Duration="0:0:0.5" Storyboard.TargetName="Border" Storyboard.TargetProperty="Background.Color"/>
               </Storyboard>
            </BeginStoryboard>
         </Trigger.ExitActions>
      </Trigger>
   </ControlTemplate.Triggers>
</ControlTemplate>

Upvotes: 1

Related Questions