EventTrigger 클래스
업데이트: 2007년 11월
이벤트에 대한 응답으로 작업 집합을 적용하는 트리거를 나타냅니다.
어셈블리: PresentationFramework(PresentationFramework.dll)
XAML의 XMLNS: http://schemas.microsoft.com/winfx/xaml/presentation
Trigger 개체의 Setters, EnterActions 및 ExitActions 속성은 특정 속성의 상태를 기준으로 변경 사항 또는 작업을 적용합니다. 반면 EventTrigger 개체는 지정된 라우트된 이벤트가 발생할 때 Actions 집합을 시작합니다. 예를 들어 마우스 포인터가 특정 UI(사용자 인터페이스) 컨트롤 위에 있을 때 애니메이션 집합을 시작하려면 EventTrigger를 사용해야 합니다. Trigger와 달리 EventTrigger에는 상태 종료에 대한 개념이 없으므로 이벤트를 발생시킨 조건이 더 이상 충족되지 않더라도 작업의 실행이 취소되지 않습니다.
EventTrigger를 사용하는 경우에는 사용자 컨트롤의 고유한 동작을 방해하지 않는 이벤트를 선택해야 합니다. Button 또는 TextBox 등의 컨트롤은 마우스 클릭 및 키보드 이벤트 같은 사용자 입력 이벤트에 대해 특정 작업을 수행합니다. 예를 들어 단추에 스타일을 지정하고 MouseDown 이벤트를 EventTrigger의 RoutedEvent로 설정하더라도 해당 이벤트가 단추에서 먼저 처리되었기 때문에 EventTrigger는 적용되지 않습니다. 대신 PreviewMouseDown 이벤트나 다른 이벤트를 사용할 수 있습니다.
데이터 바인딩을 사용할 때 TargetUpdated 이벤트를 사용하는 경우에는 발생할 이벤트에 대해 Binding 개체의 NotifyOnTargetUpdated 값을 true로 설정해야 합니다.
TriggerAction 자식을 EventTrigger 개체에 추가하면 EventTrigger 개체의 TriggerActionCollection에 자식이 암시적으로 추가됩니다.
이 예제에서는 스타일에 이벤트 처리기를 사용하여 FrameworkElement의 MouseEnter 및 MouseLeave 이벤트에 애니메이션을 적용하는 방법을 보여 줍니다. 이 예제에서 Style은 TargetType이 Rectangle로 설정되어 있습니다. 따라서 클래스 이름과 함께 MouseEnter 및 MouseLeave 이벤트 이름을 정규화할 필요가 없습니다.
<Style TargetType="Rectangle"> <Setter Property="Width" Value="50" /> <Setter Property="Height" Value="50" /> <Setter Property="Margin" Value="20" /> <Setter Property="HorizontalAlignment" Value="Left" /> <Style.Triggers> <EventTrigger RoutedEvent="MouseEnter"> <BeginStoryboard> <Storyboard> <DoubleAnimation To="300" Duration="0:0:1.5" AccelerationRatio="0.10" DecelerationRatio="0.25" Storyboard.TargetProperty="(Canvas.Width)" /> </Storyboard> </BeginStoryboard> </EventTrigger> <EventTrigger RoutedEvent="MouseLeave"> <BeginStoryboard> <Storyboard> <DoubleAnimation Duration="0:0:1.5" AccelerationRatio="0.10" DecelerationRatio="0.25" Storyboard.TargetProperty="(Canvas.Width)" /> </Storyboard> </BeginStoryboard> </EventTrigger> </Style.Triggers> </Style>
전체 샘플을 보려면 이벤트 트리거 샘플을 참조하십시오.
추가 코드
| 방법: Storyboard를 시작한 후 이벤트 트리거를 사용하여 제어 | 이 예제에서는 Storyboard를 시작한 후 제어하는 방법을 보여 줍니다. XAML을 사용하여 Storyboard를 시작하려면 애니메이션 효과를 줄 개체와 속성에 애니메이션을 배포한 다음 Storyboard를 시작하는 BeginStoryboard를 사용해야 합니다. Name 속성을 지정하여 BeginStoryboard에 이름을 제공하면 제어 가능한 Storyboard로 만들 수 있습니다. 그러면 Storyboard를 시작한 후 대화형으로 제어할 수 있습니다. |
System.Windows.Threading.DispatcherObject
System.Windows.DependencyObject
System.Windows.TriggerBase
System.Windows.EventTrigger
Windows Vista
.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.