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 = "메뉴1";
'프로그래밍' 카테고리의 다른 글
DataGridView에서 DataGridViewComboBoxCell 사용시... Selection을 잘 먹지 않는 경우... (0) | 2010.06.08 |
---|---|
C#에서의 Socket 통신시 byte배열로 변환하기 [패킷화 하기] (0) | 2010.05.25 |
쿼리문 정리 (0) | 2010.04.22 |
.NET C#을 이용한 Serial 통신 구현. (4) | 2010.04.21 |
TreeView에 Drag& Drop 구현하기 (0) | 2010.04.20 |
댓글