EventSetter Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa un establecedor de eventos en un estilo. Los establecedores de eventos invocan los controladores de eventos especificados en respuesta a los eventos.
public ref class EventSetter : System::Windows::SetterBase
public class EventSetter : System.Windows.SetterBase
type EventSetter = class
inherit SetterBase
Public Class EventSetter
Inherits SetterBase
- Herencia
Ejemplos
En el ejemplo siguiente se establece un único EventSetter dentro de un estilo de nivel de página.
<StackPanel
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="SDKSample.EventOvw2"
Name="dpanel2"
Initialized="PrimeHandledToo"
>
<StackPanel.Resources>
<Style TargetType="{x:Type Button}">
<EventSetter Event="Click" Handler="b1SetColor"/>
</Style>
</StackPanel.Resources>
<Button>Click me</Button>
<Button Name="ThisButton" Click="HandleThis">
Raise event, handle it, use handled=true handler to get it anyway.
</Button>
</StackPanel>
A continuación se muestran los controladores de eventos de ejemplo:
void b1SetColor(object sender, RoutedEventArgs e)
{
Button b = e.Source as Button;
b.Background = new SolidColorBrush(Colors.Azure);
}
void HandleThis(object sender, RoutedEventArgs e)
{
e.Handled=true;
}
Private Sub b1SetColor(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim b As Button = TryCast(e.Source, Button)
b.Background = New SolidColorBrush(Colors.Azure)
End Sub
Private Sub HandleThis(ByVal sender As Object, ByVal e As RoutedEventArgs)
e.Handled=True
End Sub
Comentarios
Los establecedores de eventos invocan los controladores de eventos especificados en respuesta a eventos enrutados, que se aplican a todos los elementos que hacen referencia al Style en lugar de requerir que asocie controladores de instancia a cada elemento individual. Solo Style.Setters admiten objetos EventSetter.
Solo puede declarar establecedores de eventos para eventos que se enrutan. Puede declarar establecedores de eventos para eventos enrutados con una estrategia de enrutamiento directo, eventos de propagación o eventos de tunelización.
Las instancias de la clase EventSetter normalmente se crean a través del lenguaje de marcado de aplicaciones extensibles (XAML), como un elemento de objeto dentro de un estilo definido a través de XAML. También se puede crear una instancia de un EventSetter desde el código.
Los establecedores de eventos no se pueden usar en un estilo contenido en un diccionario de recursos de tema. Esto se debe a que un diccionario de recursos de tema en tiempo de ejecución suele ser archivos XAML binarios sueltos (BAML) y no tiene ningún ámbito definido en el que pueda existir código subyacente que defina los controladores.
Los controladores asociados a través de establecedores de eventos se invocan después de cualquier controlador de clase para un evento y también después de cualquier controlador de instancia. Como resultado, si un controlador de clases o un controlador de instancia marca un evento controlado en sus argumentos, el controlador declarado por un establecedor de eventos no se invoca, a menos que el establecedor de eventos establezca específicamente HandledEventsTootrue
.
Los establecedores de eventos también pueden provenir de BasedOn estilos. Los controladores de establecedor de eventos del estilo especificado como BasedOn se invocarán después de los controladores en el estilo inmediato.
Tenga en cuenta que solo Style.Setters admite objetos EventSetter. Los desencadenadores (TriggerBase y clases derivadas) no admiten EventSetter.
Constructores
EventSetter() |
Inicializa una nueva instancia de la clase EventSetter. |
EventSetter(RoutedEvent, Delegate) |
Inicializa una nueva instancia de la clase EventSetter mediante los parámetros de evento y controlador proporcionados. |
Propiedades
Event |
Obtiene o establece el evento enrutado determinado al que responde este EventSetter. |
HandledEventsToo |
Obtiene o establece un valor que determina si el controlador asignado al establecedor todavía debe invocarse, incluso si el evento está marcado como controlado en sus datos de eventos. |
Handler |
Obtiene o establece la referencia a un controlador para un evento enrutado en el establecedor. |
IsSealed |
Obtiene un valor que indica si este objeto está en un estado inmutable. (Heredado de SetterBase) |
Métodos
CheckSealed() |
Comprueba si este objeto es de solo lectura y no se puede cambiar. (Heredado de SetterBase) |
Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |