티스토리 뷰

반응형

안녕하세요~ 버닝워커 입니다.

오늘은 Windows 응용프로그램에서의 XAML Form을 불러오는 방법을 소개합니다.

일단 준비물(?)인 xaml을 하나 생성합니다.

저는 TestWindow.xaml 로 하나를 만들었습니다.  제가 Test할 xaml에는 버튼하나만 딸랑 있습니다.. -_-

xaml 파일은 빌드되는 폴더경로에 넣어줍니다.

구현은 Windows 응용프로그램에서 버튼을 누르면 해당하는 xaml form을 불러와 띄우는 형식
으로 진행 합니다.

Windows 응용프로그램 프로젝트는 하나 만듭니다.

 xaml을 불러오기 위해서는 필수 참조를 추가 해야됩니다.

참조에 PresentationCore, PresentationFramework, WindowsBase 를 추가합니다.

자 이제 폼에 버튼은 하나 만듭니다. 버튼의 쿨릭 이벤트에 아래의 코드를 삽입해 봅시다.



 Window window = null;

// xaml파일이 있는 경로를 지정하여 FileStream으로 불러옵니다.
 FileStream fs = new FileStream("TestWindow.xaml", FileMode.Open, FileAccess.Read);

 window = (Window)XamlReader.Load(fs);

 fs.Close();

// 자 이제 폼은 준비되었고 xaml 의 버튼을 가져옵니다.
//System.Windows.Forms의 버튼과 네임스페이스가 겹치므로 명시적으로 네임스페이스를 적어 줍니다.
System.Windows.Controls.Button okButton = (System.Windows.Controls.Button)window.FindName("okButton");

//이벤트를 연결하여 사용해보도록 합시다.
okButton.Click += new RoutedEventHandler(okButton_Click);

window.Show();

// 버튼 이벤트
static void okButton_Click(object sender, RoutedEventArgs e)
{
       System.Windows.Forms.MessageBox.Show("쿨릭");
}

주의 하실점은 네임스페이스가 겹치는 컨트롤들이 있기때문에 명시적으로 System.Windows.Forms 와 System.Windows.Controls를 선언하여야 합니다.

반응형
댓글