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 в стиле уровня страницы.
<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) |