WPF 트리거 의 분류 및 사용

14765 단어 WPF 학습
WPF 트리거 의 분류 및 사용
트리거 안내
  WPF 에 서 는 트리거 를 이렇게 설명 합 니 다.속성 이 바 뀌 거나 이 벤트 를 촉발 할 때 속성 을 설정 하거나 시작 합 니 다.두 가지 조건 중 하 나 를 만족 시 키 는 것 은 분명 하 다.1.속성 변화 2.특정한 사건 이 촉발 되 고 결 과 는 위의 조건 이 발생 하면 다른 속성 을 설정 하거나 특정한 동작 을 시작 할 수 있다.이것 이 WPF 의 트리거 역할 이다.WPF 에서 트리거 는 트리거 의 유형 에 따라 세 가지 로 나 눌 수 있 는데 그것 이 바로 속성 트리거,이벤트 트리거,데이터 트리거 이다.트리거 조건 의 수량 에 따라 다 중 조건 트리거,단일 조건 트리거 로 나 눌 수 있다.다음은 유형 별로 설명 하 겠 습 니 다.
속성 트리거(Property Trigger)는 속성 값 이 변 경 될 때 속성 을 설정 하거나 시작 하 는 Trigger 를 속성 트리거 라 고 합 니 다.다음 코드 는 ListBoxItem 의 Opacity 속성 을 0.5,즉 반투명 으로 설정 합 니 다.ListBoxItem 의 IsSelected 속성 이 바 뀌 었 고 값 이 True 로 바 뀌 었 을 때 속성 Opacity 가 1.0 으로 설정 되 었 습 니 다.즉,불투명 합 니 다.예제 코드 는 다음 과 같 습 니 다.

    


    
        
        
        
    


이벤트 트리거(EventTrigger)는 이벤트 가 변 경 될 때 속성 을 설정 하거나 동작 을 시작 하 는 Trigger 를 이벤트 트리거 라 고 합 니 다.아래 코드 는 ListBoxItem 의 기본 Height 속성 이 35 인 것 을 보 여 줍 니 다.마우스 가 이동 하여 ListBoxItem 위 에 있 을 때 0.2 초 동안 Height 속성 치가 35 에서 100 으로 변 하 는 애니메이션 변 화 를 촉발 합 니 다.마우스 가 ListBoxItem 을 옮 길 때 Height 는 100 에서 35 로 변 합 니 다.예제 코드 는 다음 과 같 습 니 다.

    


    
        
        
        
    


데이터 트리거(DataTrigger)는 주어진 데이터 가 지정 한 조건 을 만족 시 킬 때 설정 속성 을 실행 하거나 주어진 작업 을 수행 합 니 다.데이터 트리거 와 위의 두 트리거 의 본질 적 인 차 이 는 조건 데이터 가 컨트롤 요소 속성 값 이 아 닌 사용자 정의 데이터 에서 유래 한 것 이다.아래 코드 는 주어진 ListBox 의 데이터 원본 이 Book 인 목록 을 보 여 줍 니 다.Book 클래스 의 구성원 Stock 값 이 out 일 때 트리거 대상 이 이벤트 일 때 1 초 동안 Opacity 가 0.25 에서 0.5 로 투명 하 게 변 하 는 것 을 반복 하고 트리거 대상 이 비 활동 일 때 1 초 동안 Opacity 가 1.0 으로 변 합 니 다.예제 코드 는 다음 과 같 습 니 다.

    
        
            
                
                    
                        XML in Action
                        XML Web Technology
                    
                    
                        Programming Microsoft Windows With C#
                        C# Programming using the .NET Framework
                    
                    
                        Inside C#
                        C# Language Programming
                    
                    
                        Introducing Microsoft .NET
                        Overview of .NET Technology
                    
                    
                        Microsoft C# Language Specifications
                        The C# language definition
                    
                
                
                    
                        Classical Collection
                        Classical Music
                    
                    
                        Jazz Collection
                        Jazz Music
                    
                
            
        
    

    



    
        
            
        

        
            
                
                    
                        
                    
                
            
        
    


다 중 조건 트리거(MultiTrigger)는 속성 조건 이 여러 개 이 고 여러 조건 이 성립 된 조건 에서 트리거 하 는 Trigger 를 다 중 조건 속성 트리거 라 고 하 며,다 중 조건 트리거 가 트리거 되면 속성 을 설정 하거나 주어진 동작 을 수행 합 니 다.아래 코드 는 ListBoxItem 의 IsSelected 와 IsEnabled 가 모두 True 로 설정 되 었 을 때 Foreground 가 빨간색 으로 설정 되 었 습 니 다.(주의:Background 를 사용 하지 않 은 이 유 는 Background 가 컨트롤 의 배경 을 표시 하 는 데 사용 되 기 때문에 배경 색 을 바 꾸 려 면 Template 에서 촉발 해 야 합 니 다)트리거 할 때 설 정 된 속성 은 기본 설정 이 있어 야 합 니 다.이 곳 의 Foreground 는 기본적으로 Black 으로 설정 되 어 있 습 니 다.예제 코드 는 다음 과 같 습 니 다.

    


    
        
        
        
    


  데이터 조건 이 여러 개 이 고 여러 조건 이 성립 된 조건 에서 트리거 된 Trigger 를 다 중 조건 데이터 트리거 라 고 하 며,다 중 조건 트리거 가 트리거 되면 속성 을 설정 하거나 주어진 동작 을 수행 합 니 다.다음 코드 는 주어진 데이터 의 구성원 Stock 이"in"이 고 Number 구성원 이 8 일 때 발생 하 는 컨트롤 의 전경 색(Foreground)은 빨간색(Red)입 니 다.예제 코드 는 다음 과 같 습 니 다.

    
        
            
                
                    
                        XML in Action
                        XML Web Technology
                    
                    
                        Programming Microsoft Windows With C#
                        C# Programming using the .NET Framework
                    
                    
                        Inside C#
                        C# Language Programming
                    
                    
                        Introducing Microsoft .NET
                        Overview of .NET Technology
                    
                    
                        Microsoft C# Language Specifications
                        The C# language definition
                    
                
                
                    
                        Classical Collection
                        Classical Music
                    
                    
                        Jazz Collection
                        Jazz Music
                    
                
            
        
    

    



    
        
            
        

        
            
                
                    
                        
                    
                
            
        
    


시각 상태(추가 설명)는 WPF 에서 컨트롤 러 는 6 가지 상태 로 모두 두 그룹,즉 CommonStates 그룹 과 FocusStates 그룹 으로 나 뉘 는데 구체 적 인 세부 사항 은 다음 그림 에 나타 날 것 이다.그 운영 방식 은 System.Windows.VisualStateManager 가 특정 상태 에 들 어 갈 때 애니메이션 을 시작 하 는 것 입 니 다.VisualStateManager 는 감시 할 VisualStateGroup 과 VisualState 의 조합 을 설명 합 니 다.여섯 가지 상태 정 보 는 다음 과 같다.
VisualState 이름
VisualStateGroup 이름
묘사 하 다.
Normal
CommonStates
기본 상태.
MouseOver
CommonStates
마우스 포인터 가 컨트롤 위 에 서 있 습 니 다.
Pressed
CommonStates
컨트롤 을 눌 렀 습 니 다.
Disabled
CommonStates
컨트롤 이 비활성화 되 었 습 니 다.
Focused
FocusStates
컨트롤 에 초점 이 있 습 니 다.
Unfocused
FocusStates
컨트롤 에 초점 이 없습니다.
XAML 예제 코드 는 다음 과 같 습 니 다.

        
            
                
                    
                        
                    
                
                
            
        

        
            
        
    

백 엔 드 예제 코드 는 다음 과 같 습 니 다.
private void rect_MouseEvent(object sender, MouseEventArgs e)
{
    if (rect.IsMouseOver)
    {
        VisualStateManager.GoToElementState(rect, "MouseEnter", true);
    }
    else
    {
        VisualStateManager.GoToElementState(rect, "MouseLeave", true);
    }
}

EnterActions 와 ExitActions 프로필(추가 설명)은 8195 입 니 다.이 두 가지 속성 은 Trigger 류 에서 이벤트 트리거 를 제외 한 트리거 에 사용 할 수 있 습 니 다.그 목적 은 트리거 를 실행 시 키 는 것 입 니 다.컨트롤 애니메이션 을 자주 사용 합 니 다.EnterActions 와 ExitActions 는 모두 TriggerAction Collection 에서 정의 되 고 TriggerAction Collection 은 TriggerAction 류 목록 을 실현 합 니 다.따라서 작업 을 수행 해 야 하 는 종 류 는 TriggerAction 을 계승 해 야 합 니 다.한편,WPF 애니메이션 처리 에서 일반적인 애니메이션 을 처리 하 는 방법 은 BeginStoryboard 로 애니메이션 작업 을 시작 하 는 것 이기 때문에 BeginStoryboard 류 가 Trigger Action 의 하위 클래스 임 에 틀림없다.애니메이션 의 다른 세부 사항 에 대해 서 는 후속 글 에서 구체 적 으로 분석 할 것 이다.

좋은 웹페이지 즐겨찾기