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 на те элементы, которые ссылаются на них, а не требуют присоединения обработчиков экземпляров к каждому отдельному элементу. Поддерживаются EventSetter только Style.Setters объекты.
Можно объявлять только методы задания событий для событий, которые являются перенаправленными событиями. Вы можете объявить методы задания событий для перенаправленных событий с помощью стратегии прямой маршрутизации, событий с пузырьками или туннелирования событий.
Экземпляры EventSetter класса обычно создаются с помощью языка РАЗМЕТКи расширяемых приложений (XAML) в качестве объектного элемента в стиле, определенном с помощью XAML. Также EventSetter может создаваться экземпляр из кода.
Методы задания событий нельзя использовать в стиле, содержавшемся в словаре ресурсов темы. Это связано с тем, что словарь ресурсов темы во время выполнения часто является свободным двоичным файлом XAML (BAML) и не имеет области, в которой может существовать сопутствующий код программной части, определяющий обработчики.
Обработчики, подключенные через методы задания событий, вызываются после любых обработчиков классов для события, а также после обработчиков экземпляров. В результате, если обработчик класса или обработчик экземпляра помечает событие, обработанное в его аргументах, обработчик, объявленный методом задания событий, не вызывается, если только метод задания событий не задает HandledEventsToo true
.
Методы задания событий также могут поступать из BasedOn стилей. Обработчики метода задания событий из стиля, указанного как BasedOn будут вызываться после обработчиков в немедленном стиле.
Обратите внимание, что поддерживаются EventSetter только Style.Setters объекты. Триггеры (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) |