Partilhar via


EventSetter Classe

Definição

Representa um setter de evento em um estilo. Os setters de evento invocam os manipuladores de eventos especificados em resposta aos eventos.

public ref class EventSetter : System::Windows::SetterBase
public class EventSetter : System.Windows.SetterBase
type EventSetter = class
    inherit SetterBase
Public Class EventSetter
Inherits SetterBase
Herança
EventSetter

Exemplos

O exemplo a seguir estabelece um único EventSetter em um estilo de nível 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>

O seguinte mostra os manipuladores de eventos de exemplo:

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

Comentários

Os setters de evento invocam os manipuladores de eventos especificados em resposta a eventos roteados, que se aplicam a todos os elementos que fazem referência à Style em vez de exigir que você anexe manipuladores de instância a cada elemento individual. Somente Style.Setters dar suporte a objetos EventSetter.

Você só pode declarar setters de eventos para eventos roteado. Você pode declarar setters de eventos para eventos roteado com uma estratégia de roteamento direto, eventos de borbulha ou eventos de túnel.

As instâncias da classe EventSetter geralmente são criadas por meio da XAML (Extensible Application Markup Language), como um elemento de objeto dentro de um estilo definido por meio de XAML. Um EventSetter também pode ser instanciado do código.

Os setters de eventos não podem ser usados em um estilo contido em um dicionário de recursos de tema. Isso ocorre porque um dicionário de recursos de tema em tempo de execução geralmente é arquivos BINÁRIOS XAML (BAML) e não tem nenhum escopo definido onde o code-behind que acompanha os manipuladores pode existir.

Os manipuladores anexados por meio de setters de eventos são invocados após qualquer manipulador de classe para um evento e também após qualquer manipulador de instância. Como resultado, se um manipulador de classe ou manipulador de instância marcar um evento tratado em seus argumentos, o manipulador declarado por um setter de eventos não será invocado, a menos que o setter de eventos defina especificamente HandledEventsTootrue.

Os setters de eventos também podem vir de estilos de BasedOn. Os manipuladores de setter de eventos do estilo especificado como BasedOn serão invocados após os manipuladores no estilo imediato.

Observe que apenas Style.Setters dá suporte a objetos EventSetter. Gatilhos (TriggerBase e classes derivadas) não dão suporte a EventSetter.

Construtores

EventSetter()

Inicializa uma nova instância da classe EventSetter.

EventSetter(RoutedEvent, Delegate)

Inicializa uma nova instância da classe EventSetter, usando os parâmetros de evento e manipulador fornecidos.

Propriedades

Event

Obtém ou define o evento roteado específico ao qual esse EventSetter responde.

HandledEventsToo

Obtém ou define um valor que determina se o manipulador atribuído ao setter ainda deve ser invocado, mesmo que o evento seja marcado como manipulado em seus dados de evento.

Handler

Obtém ou define a referência a um manipulador para um evento roteado no setter.

IsSealed

Obtém um valor que indica se esse objeto está em um estado imutável.

(Herdado de SetterBase)

Métodos

CheckSealed()

Verifica se esse objeto é somente leitura e não pode ser alterado.

(Herdado de SetterBase)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também