Поделиться через


EventSetter Класс

Определение

Представляет метод задания событий в стиле. Методы задания событий вызывают указанные обработчики событий в ответ на события.

public ref class EventSetter : System::Windows::SetterBase
public class EventSetter : System.Windows.SetterBase
type EventSetter = class
    inherit SetterBase
Public Class EventSetter
Inherits SetterBase
Наследование
EventSetter

Примеры

В следующем примере устанавливается один EventSetter в стиле уровня страницы.

<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>

Ниже показаны примеры обработчиков событий:

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

Комментарии

Методы установки событий вызывают указанные обработчики событий в ответ на перенаправленные события, которые применяются ко всем элементам, ссылающимся на Style, а не требовать подключения обработчиков экземпляров к каждому отдельному элементу. Только Style.Setters поддерживают объекты EventSetter.

Вы можете объявлять только методы задания событий для событий, которые являются перенаправленными событиями. Вы можете объявлять методы задания событий для перенаправленных событий с помощью стратегии прямой маршрутизации, пузырьковых событий или событий туннелирования.

Экземпляры класса EventSetter обычно создаются с помощью языка разметки расширяемых приложений (XAML) в качестве элемента объекта в стиле, определенном с помощью XAML. Можно также создать экземпляр EventSetter из кода.

Наборы событий нельзя использовать в стиле, который содержится в словаре ресурсов темы. Это связано с тем, что словарь ресурсов темы во время выполнения часто является свободным двоичным файлам XAML (BAML) и не имеет области, в которой есть сопровождающий код, определяющий обработчики.

Обработчики, подключенные через методы задания событий, вызываются после любого обработчика классов для события, а также после всех обработчиков экземпляров. В результате, если обработчик класса или обработчик экземпляра помечает событие, обработанное в его аргументах, обработчик, объявленный методом задания событий, не вызывается, если только не задает HandledEventsTootrue.

Методы задания событий также могут быть получены из стилей BasedOn. Обработчики набора событий из стиля, указанного как BasedOn, будут вызваны после обработчиков в немедленном стиле.

Обратите внимание, что только Style.Setters поддерживает объекты EventSetter. Триггеры (TriggerBase и производные классы) не поддерживают EventSetter.

Конструкторы

EventSetter()

Инициализирует новый экземпляр класса EventSetter.

EventSetter(RoutedEvent, Delegate)

Инициализирует новый экземпляр класса EventSetter с помощью предоставленных параметров события и обработчика.

Свойства

Event

Возвращает или задает определенное перенаправленное событие, к которому отвечает этот EventSetter.

HandledEventsToo

Возвращает или задает значение, определяющее, должен ли обработчик, назначенный методу задания, по-прежнему вызываться, даже если событие помечается в его данных события.

Handler

Возвращает или задает ссылку на обработчик для перенаправленного события в методе задания.

IsSealed

Возвращает значение, указывающее, находится ли этот объект в неизменяемом состоянии.

(Унаследовано от SetterBase)

Методы

CheckSealed()

Проверяет, доступен ли этот объект только для чтения и не может быть изменен.

(Унаследовано от SetterBase)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел