문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

사용자 지정 동작 만들기(WPF용 Blend SDK)

Behavior Trigger 또는 Trigger 같은 항목의 외부 알림 없이 작동할 수 있습니다. 특정 조건은 충족되어야 하지만 Trigger에 의해 호출될 필요는 없습니다.

외부 입력이 필요 없는 Behavior를 작성하는 것은 매우 간단합니다. 다음 코드 예제는 기준선 Behavior을 보여줍니다.

public class MyBehavior : Behavior<DependencyObject>
{
    public MyBehavior()
    {

    }

    protected override void OnAttached()
    {
        base.OnAttached();

        // Insert code that you want to run when the Behavior is attached to an object.
    }

    protected override void OnDetaching()
    {
        base.OnDetaching();
    }
}

Behavior 클래스를 확장하고 Behavior를 연결하려는 형식으로 제한합니다.

Triggers 에 대한 OnAttachingOnDetaching 메서드처럼, Behavior를 개체와 연결하거나 Behaviors에 대한 OnAttachedOnDetaching 메서드에서 현재 연결된 개체와 Behavior를 분리할 때 실행할 코드를 입력할 수 있습니다.

사용자가 Behavior의 기능을 사용자 정의할 수 있는 한 가지 방법은 Commands(ICommand 형식의 속성)을 노출하는 것입니다. 각 명령은 Behavior가 수행할 수 있는 작업에 해당합니다. 먼저, 프로젝트가 Microsoft.Expression.Interactions 및 System.Windows.Interactivity DLL 모두를 참조하는지 확인합니다. 다음으로, 새 Class 파일을 만들고 다음 코드를 추가합니다.

public class BehaviorWithCommand : Behavior<DependencyObject>
{
    public BehaviorWithCommand()
    {
        this.MyCommand = new ActionCommand(this.MyFunction);
    }

    protected override void OnAttached()
    {
        base.OnAttached();
    }

    protected override void OnDetaching()
    {
        base.OnDetaching();
    }

    public ICommand MyCommand
    {
        get;
        private set;
    }
     
    private void MyFunction()
    {
        // Code to execute when your Command is called
    }
}

다음 다이어그램은 CommandsBehaviors가 함께 작동하여 Action과 같은 기능을 제공하는 방법을 개괄적으로 나타냅니다.

명령으로 동작 사용

이전 다이어그램에 나타난 대로 BehaviorCommands를 노출합니다. Triggers Actions 의 기존 패턴을 사용하면 TriggersBehavior에 추가하고 해당 Triggers가 하나 이상의 InvokeCommandActions를 발생시키도록 하여 이러한 Commands 을 호출할 수 있습니다. InvokeCommandAction 은 한 가지 작업만 수행하는데, Behavior에서 노출되는 Command을 호출합니다.

표시: