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