Tengo varios elementos de control de la GUI de los cuales se supone que algunos deben generar la misma acción (llamada de función de código subyacente) en la interacción del mouse (MouseEnter, MouseLeave).
[edit] Estoy realizando algunas funcionalidades no relacionadas con el estilo en mis controladores de eventos. atribuye
En este momento estoy usando evento en cada control:¿Cómo establecer una función de evento a través de un estilo?
<Button Name="Button" Content="Button 1"
MouseEnter="GeneralMouseEnter" MouseLeave="GeneralMouseLeave"
PreviewMouseDown="Button1_PreviewMouseDown" PreviewMouseUp="Button1_PreviewMouseUp" />
<Button Name="NotInteractingButton" Content="Button 2"
/><!-- this button has no MouseOver-effects -->
<ToggleButton Content="ToggleButton"
MouseEnter="GeneralMouseEnter" MouseLeave="GeneralMouseLeave" />
<!-- needs to use IsMouseDirectlyOver on the slider knob... -->
<Slider Name="HorizontalSlider"
MouseEnter="GeneralMouseEnter" MouseLeave="GeneralMouseLeave"
ValueChanged="Slider_ValueChanged" />
<Slider Name="VerticalSlider" Orientation="Vertical"
MouseEnter="GeneralMouseEnter" MouseLeave="GeneralMouseLeave"
ValueChanged="Slider_ValueChanged" />
Dado que muchos controles en este ejemplo están llamando a las mismas dos funciones "GeneralMouseEnter" y "GeneralMouseLeave", me gustaría ser capaz de define un estilo o algo similar para encapsular ese comportamiento.
[editar - aclaración]
Esto se supone que se convertirá en un tipo de complemento más adelante.
(Incluir archivos de código y XAML a cualquier programa de interfaz gráfica de usuario y establecer un estilo para cada elemento interactivo de control ...)
Por lo que he encontrado en la web, que se puede utilizar EventTriggers
como en este ejemplo:
<Style.Triggers>
<EventTrigger RoutedEvent="Click">
<EventTrigger.Actions>
<BeginAction TargetName="SomeAction" />
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
No sé si y cómo llamar a las funciones dentro de una acción.
- ¿Es posible obtener esta funcionalidad creando un estilo con acción + disparador para aplicar a cada control? ¿Como hacer eso?
- ¿Cómo asigno múltiples estilos (para eventos de interacción múltiple) a un control?
- ¿Existe tal vez incluso una forma más clara de lograr este comportamiento?
- [edit]
¿Qué sucede si quiero, digamos, tener interacción del mouse en todos los controles deslizantes en mi GUI?
Genial, eso es exactamente lo que estaba buscando, especialmente en combinación con 'BasedOn =" ... "'. –