WinForm 프로젝트에 WPF 사용자 정의 컨트롤을 추가한다
이렇게 하면 UserControl 이라는 WPF 코드가 생성된다.
WinForm 디자인창에서 WPF 상호 운용성 -> ElementHost를 넣어 준다.
ElementHost 의 Child를 생성한 UserControl 로 설정해주거나
눌러서 설정해 준다.
WinForm 에서 WPF에 있는 컨트롤에 접근하려면 다음과 같이 간단하게 된다.
// WPF 안에있는 TextBox에 접근해 보자
(this.elementHost1.Child as UserControl1).txt.Text = "!!!! ㅋㅋㅋ";
-- WPF 에서 부모인 WinForm에 접근하려면 조금 더 복잡하다.
부모 자식관계 트리구조는 WinForm -> ElementHost -> UserControl(WPF) 와 같다.
우선 WPF 코드비하인드에서 부모폼을 선언해 주고 메서드와 멤버를 지정해준다(리팩터링 해도 되고, 써줘도 되고..)
//private Form1 parentForm; //** 리팩터링 -> 필드캡슐화
//public Form1 ParentForm
//{
// get { return parentForm; }
// set { parentForm = value; }
//}
public Form1 parentForm{get; set;} //** 위의 주석처리한 툴을 이용한 코드 생성과 같다(자동구현프로퍼티)
그리고 부모폼에서 WPF에게 부모가 나다 라고 알려준다.
// WPF 컨트롤에게 부모가 나다 라고 알려주자
(this.elementHost1.Child as UserControl1).parentForm = this; //!!!**
위의 작업을 해주고 나면 WPF에서 아래와 같은 방법으로 부모창(WinForm)에 접근이 가능하다.
this.parentForm.textBox1.Text = "aaaa1";
C# WPF에 Win Form 컨트롤 붙이기 (0) | 2013.05.25 |
---|---|
Kaxaml 폼을 비슷하게 따라 만들어본 베이스 프레임 (0) | 2013.05.25 |
WPF 어플리케이션 라이프 사이클(Application Life Cycle) (0) | 2013.03.27 |
WPF Media Player ( Design. GomPlayer ) (0) | 2012.03.23 |
WPF 아키텍처 (0) | 2010.08.06 |