다음을 통해 공유


방법: 사용자 지정 컨트롤이 디자인 타임에 있는지 런타임에 있는지 확인

확장성을 사용하여 WPF Designer for Visual Studio를 사용자 지정하는 경우 디자인 타임 또는 런타임에 컨트롤의 동작을 사용자 지정해야 하는 경우가 있습니다. 이러한 경우 최종 사용자를 위한 디자인 타임 환경을 사용자 지정할 수 있습니다. 예를 들어 사용자 지정 단추를 만드는 경우 런타임이 아니라 디자인 타임에 단추에 텍스트가 표시되도록 선택할 수 있습니다. 복잡한 동작을 보여 주는 컨트롤을 사용자 지정하여 해당 동작이 런타임에만 발생하도록 할 수도 있습니다. 예를 들어 데이터베이스에 자동으로 액세스하는 컨트롤은 디자인 타임이 아니라 런타임에 데이터베이스에 액세스해야 합니다.

GetIsInDesignMode 메서드를 호출하면 컨트롤이 디자인 타임에서 실행되는지 런타임에서 실행되는지 확인할 수 있습니다.

디자인 모드 속성 사용

이 절차에서는 런타임이 아니라 디자인 타임에 사용자 지정 단추 컨트롤에 텍스트를 표시합니다.

디자인 모드 속성을 사용하려면

  1. 사용자 지정 컨트롤에 대한 코드 숨김 파일에서 사용자 지정 컨트롤의 생성자를 찾습니다.

  2. GetIsInDesignMode 메서드를 호출하는 코드를 추가하고 컨트롤의 동작을 적절히 사용자 지정합니다. 사용자 지정 컨트롤에 대한 참조를 GetIsInDesignMode에 인수로 전달하면 이 메서드가 컨트롤이 디자인 모드에 있는지 여부를 확인합니다. 예를 들어 다음과 같은 코드를 추가합니다.

    Namespace CustomControlLibrary
    
        Public Class ButtonWithDesignTime
            Inherits System.Windows.Controls.Button
    
            Public Sub New()
    
                If System.ComponentModel.DesignerProperties.GetIsInDesignMode(Me) Then
                    Me.Content = "This button is in design mode."
                End If
            End Sub
        End Class
    End Namespace
    
    namespace CustomControlLibrary
    {
        public class ButtonWithDesignTime : System.Windows.Controls.Button
        {
            public ButtonWithDesignTime()
            {
                if (System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))
                {
                    this.Content = "This button is in design mode.";
                }
            }
        }
    }
    

참고 항목

기타 리소스

디자인 타임 동작과 런타임 동작 비교

WPF Designer 확장성 이해

WPF Designer 확장성