La WPF Grid tiene una propiedad "IsMouseOver" que puede usar en los activadores del estilo de la cuadrícula.Rejilla WPF Propiedad IsMouseOver
Mi problema es que la propiedad "IsMouseOver" solo cambia si el mouse está sobre algún control (es decir, un botón o ComboBox) dentro de la propia cuadrícula.
Por ejemplo:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Button Grid.Column="1">A Button</Button>
<Grid.Style>
<Style TargetType="{x:Type Grid}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="False">
<Setter Property="Opacity" Value="0.5"></Setter>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Opacity" Value="1"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Grid.Style>
</Grid>
La rejilla arriba y su contenido se mostrarán en la mitad de la opacidad para que pueda ver los controles.
Notará que la opacidad será no se establecerá en completo si coloca el cursor sobre la primera columna (que no contiene nada).
Sin embargo, la opacidad será se establecerá en completo si pasa el mouse sobre el botón en la segunda columna.
En mi aplicación, la cuadrícula para la que estoy configurando los desencadenantes se muestra encima de un control de imagen. No quiero que se muestre la cuadrícula hasta que el mouse esté sobre la imagen ... En otras palabras, dado que la cuadrícula está en la parte superior de la imagen, no quiero que se muestre la cuadrícula hasta que el mouse esté sobre ella la cuadrícula (en cualquier lugar de la cuadrícula) porque la cuadrícula está en la parte superior de la imagen.
¿Alguien sabe cómo lograr esto?
Gracias!
-Frinny
¡Muchas gracias por su respuesta! – Frinavale