2010-09-17 16 views
8

Quiero controlar eventos de sobre y salida del mouse para una grilla. ¿WPF tiene eventos para esto? Nota: No quiero usar la propiedad IsMouseOver en mi estilo. he utilizado el método MouseEnter y MouseLeave pero sin mucho éxito.Evento para la acción de MouseOver en WPF

+0

"No quiero usar la propiedad IsMouseOver en mi estilo": ¿por qué? Qué estás tratando de hacer exactamente ? –

+0

¿Por qué MouseEnter y MouseLeave no funcionan para usted? – Bubblewrap

Respuesta

7

Puede usar EventTriggers para capturar eventos MouseEnter y MouseLeave en XAML.

Aquí está un ejemplo sencillo que cambia el fondo de un StackPanel en una cuadrícula:

<Grid> 
    <Grid.RowDefinitions> 
    <RowDefinition/> 
    <RowDefinition/> 
    </Grid.RowDefinitions> 
    <StackPanel Grid.Row="1" Background="Blue"> 
    <StackPanel.Style> 
     <Style> 
     <Style.Triggers> 
      <EventTrigger RoutedEvent="StackPanel.MouseEnter"> 
      <EventTrigger.Actions> 
       <BeginStoryboard> 
       <Storyboard> 
        <ColorAnimation 
         AutoReverse="False" 
         Duration="0:0:1" 
         From="Blue" To="Red" 
         AccelerationRatio="1" 
         Storyboard.TargetProperty="(StackPanel.Background).(SolidColorBrush.Color)" 
         FillBehavior="HoldEnd"> 
        </ColorAnimation> 
       </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger.Actions> 
      </EventTrigger> 
      <EventTrigger RoutedEvent="StackPanel.MouseLeave"> 
      <EventTrigger.Actions> 
       <BeginStoryboard> 
       <Storyboard> 
        <ColorAnimation 
         AutoReverse="False" 
         Duration="0:0:1" 
         From="Red" To="Blue" 
         AccelerationRatio="1" 
         Storyboard.TargetProperty="(StackPanel.Background).(SolidColorBrush.Color)" 
         FillBehavior="HoldEnd"> 
        </ColorAnimation> 
       </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger.Actions> 
      </EventTrigger> 
     </Style.Triggers> 
     </Style> 
    </StackPanel.Style> 
    </StackPanel> 
</Grid> 
7

control de WPF Una rejilla soporta tanto las MouseEnter y MouseLeave eventos. Debería poder conectar manejadores de eventos para ambos.

1

Se pueden gestionar eventos MouseEnter y MouseLeave; puede verificar el conjunto de códigos e.handled = flase;

2

Más simple: Puede implementar los dos eventos PointerMoved y PointerExited. Funcionó para mí

Cuestiones relacionadas