다음을 통해 공유


연습: WPF Designer를 사용하여 Windows Forms 사용자 정의 컨트롤 호스팅

이 연습에서는 WPF Designer for Visual Studio를 사용하여 WPF 응용 프로그램에서 Windows Forms 복합 컨트롤을 호스팅하는 방법을 보여 줍니다. Windows Forms 및 WPF의 상호 운용성에 대한 자세한 내용은 마이그레이션 및 상호 운용성을 참조하십시오. 

이 연습에서 수행할 작업은 다음과 같습니다.

  • 프로젝트 만들기

  • Windows Forms 복합 컨트롤 만들기

  • WPF 응용 프로그램에서 Windows Forms 컨트롤 호스팅

참고

표시되는 대화 상자와 메뉴 명령은 활성 설정이나 버전에 따라 도움말에서 설명하는 것과 다를 수 있습니다. 설정을 변경하려면 도구 메뉴에서 설정 가져오기 및 내보내기를 선택합니다. 자세한 내용은 설정에 대한 작업을 참조하십시오.

사전 요구 사항

이 연습을 완료하려면 다음 구성 요소가 필요합니다.

  • Visual Studio 2010.

프로젝트 만들기

첫 번째 단계로 호스트 응용 프로그램에 대한 프로젝트를 만듭니다.

프로젝트를 만들려면

  1. "DemoApplication"이라는 WPF 응용 프로그램 프로젝트를 만듭니다. 자세한 내용은 방법: 새 WPF 응용 프로그램 프로젝트 만들기를 참조하십시오.

    WPF Designer에 MainWindow.xaml이 열립니다. 

  2. 솔루션 탐색기에서 WindowsFormsIntegration.dll이라는 WindowsFormsIntegration 어셈블리에 대한 참조를 추가합니다.

  3. 솔루션 탐색기에서 System.Windows.Forms.dll이라는 Windows Forms 어셈블리에 대한 참조를 추가합니다.

Windows Forms 복합 컨트롤 만들기

이 절차에서는 내용에 맞게 크기가 자동으로 조정되는 복합 컨트롤을 만드는 방법을 보여 줍니다. TableLayoutPanel 컨트롤 및 AutoSize 속성은 컨트롤의 동적 레이아웃 기능을 제공합니다. 자세한 내용은 TableLayoutPanel 컨트롤(Windows Forms)을 참조하십시오.

Windows Forms 복합 컨트롤을 만들려면

  1. 솔루션에 "DemoControlLibrary"라는 새 Windows Forms 컨트롤 라이브러리 프로젝트를 추가합니다. 자세한 내용은 방법: 솔루션 항목 추가 및 제거를 참조하십시오.

    UserControl1이 Windows Forms 디자이너에서 열립니다.

  2. 도구 상자에서 TableLayoutPanel 컨트롤을 두 번 클릭합니다. 디자인 화면에 TableLayoutPanel 컨트롤이 나타납니다.

  3. TableLayoutPanel 작업 스마트 태그 메뉴에서 마지막 행 제거를 선택합니다.

  4. 속성 창에서 Dock 속성 값을 Fill로 설정합니다.

  5. 도구 상자에서 TableLayoutPanel 컨트롤의 첫 번째 셀에 Label 컨트롤을 추가합니다.

  6. 속성 창에서 Label 컨트롤에 대해 다음 속성을 설정합니다.

    Property

    AutoSize

    True

    Dock

    Fill

    Margin

    0,0,0,0

    Text

    Enter Date:

    TextAlign

    MiddleCenter

  7. 도구 상자에서 TableLayoutPanel 컨트롤의 두 번째 셀에 MaskedTextBox 컨트롤을 추가합니다.

  8. MaskedTextBox 컨트롤의 스마트 태그 문자 모양(스마트 태그 문자 모양)을 클릭하고 MaskedTextBox 작업 메뉴에서 마스크 설정을 선택합니다.

    입력 마스크 대화 상자가 나타납니다.

  9. 마스크 설명 열에서 간단한 날짜 또는 미리 정의된 다른 마스크 설명을 선택하고 확인 단추를 클릭합니다.

  10. 속성 창 위쪽의 드롭다운 목록에서 TableLayoutPanel 컨트롤을 선택합니다.

  11. AutoSize 속성 값을 true로 설정합니다.

  12. 속성 창 위쪽에서 UserControl1을 선택합니다.

  13. AutoSize 속성 값을 true로, Size 속성 값을 0,0으로 설정합니다.

    UserControl1의 크기가 내용에 맞게 조정됩니다.

  14. 빌드 메뉴에서 솔루션 빌드를 선택하여 솔루션을 빌드합니다.

WPF에서 Windows Forms 컨트롤 호스팅

WPF 응용 프로그램에서 WindowsFormsHost 요소를 사용하여 UserControl1을 호스팅할 수 있습니다.

WPF에서 Windows Forms 컨트롤을 호스팅하려면

  1. DemoControlLibrary 프로젝트에 대한 참조를 솔루션 탐색기의 DemoApplication 프로젝트에 추가합니다. 자세한 내용은 방법: Visual Studio에서 참조 추가 또는 제거를 참조하십시오.

  2. WPF Designer에서 MainWindow.xaml을 엽니다.

  3. XAML 뷰에서 여는 Window 태그에 다음 네임스페이스 매핑을 삽입하여 DemoControlLibrary 네임스페이스를 가져옵니다. 자세한 내용은 방법: 네임스페이스를 XAML로 가져오기를 참조하십시오.

    xmlns:dc="clr-namespace:DemoControlLibrary;assembly=DemoControlLibrary"
    
  4. Grid 여는 태그 뒤에 다음 코드를 삽입합니다.

    <WindowsFormsHost HorizontalAlignment="Left" VerticalAlignment="Top">
        <dc:UserControl1/>
    </WindowsFormsHost>
    

    호스팅된 Windows Forms 컨트롤을 나타내는 영역이 디자이너에 표시됩니다.

  5. 솔루션을 실행하여 사용자 컨트롤을 테스트합니다.

다음 단계

Windows Forms에서 WPF 컨트롤을 호스팅할 수도 있습니다. 자세한 내용은 WPF 컨트롤 사용을 참조하십시오.

참고 항목

작업

연습: WPF에서 Windows Forms 컨트롤 호스팅

참조

WindowsFormsHost

ElementHost

기타 리소스

WPF Designer에서의 컨트롤 작업

마이그레이션 및 상호 운용성