XAML or HTML

020. 비헤이비어(Behavior) #1

XAML 뽀개기

Behavior 행동, 반응이란 뜻을 가지고 있습니다. 특정 상황, 조건(Trigger) 등에 따라 UI 요소에 어떤 영향을 줄  주로 사용됩니다. 사용자가 커스텀 비헤이비어를 만들어 기능을 확장할 수도 있습니다.


일단 비헤이비어를 사용하려면 System.Windows.Interactivity 어셈블리(dll) 참조가 필요합니다. 기본으로 제공되는 비헤이비어는 자주 사용되므로 Microsoft.Expression.Interactions 어셈블리도 함께 참조합니다.

 

 

Visual Studio 설치시 설정할 있는 옵션에서 SDK 제외되었다면 Blend for VS Assets(자산) 윈도우에서 기본으로 제공되는 비헤이비어가 보이지 않을 있습니다.

 

 

비헤이비어가 보이지 않는다면 Visual Studio Installer 이용해 SDK 설치합니다.

 

 

C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.5\Libraries\System.Windows.Interactivity.dll

 

이미 설치되어 있으면 경로를 참고해 수동으로 참조시켜도 됩니다.

 

 

참조 및 빌드를 후에는 기본으로 제공되는 비헤이비어를 Blend for VS에서 손쉽게 사용할 있습니다. 일반적인 사용 방법은 디자인뷰에 사용하길 원하는 UI 컨트롤 요소에 마우스로 drag & drop(드래그 드롭)하는 것입니다. 관련 어셈블리도 자동으로 참조됩니다.

 

1
2
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
cs

       

 방법을 이용하면 XAML 코드에 네임스페이스 등록도 자동으로 이루어 집니다. 여기서 접두사는 본인 취향에 맞게 수정해도 됩니다.

 

 

1
2
3
4
5
6
7
8
9
<Button Content="↑" FontWeight="Bold" FontSize="18"
        HorizontalAlignment="Right" VerticalAlignment="Bottom"
        Margin="5,5,22,5">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Click">
            <ei:CallMethodAction/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</Button>
cs

 

비헤이비어는 드래그 앤 드롭하는 순간 UI 요소 하위에 자동으로 생성됩니다. 자동으로 생성된 XAML 코드를 살펴보면 Trigger(트리거) Action(액션)으로 구성되어 있습니다.

 

 

비헤이비어를 선택한 상태에서는 속성 윈도우에서 비헤이비어의 다양한 속성을 정의할 있습니다. 정의하지 않은 트리거의 Source 속성들은 트리 구조내 부모 요소 암시적으로 따릅니다.

 

 

트리거 타입은 새로 만들기 버튼을 눌러 변경할 있습니다.


다음 포스트에서는 나름 의미있는 예제를 들어 살펴보겠습니다.


샘플 코드 : https://github.com/CharlesKwon/XamlSimplified


참고 : MSDN > Working with built-in behaviors


관련 목차

 

020. 비헤이비어(Behavior) #1

021. 비헤이비어(CallMethodAction) #2

022. 비헤이비어(CallMethodAction) #3