2019.02.16


WPF의 Mainwindow에서 버튼을 누르면 기존 창이 가려지고, 

새로운 창이 나와야 하는 작업을 하는 과정에서 생각보다 시간을 많이 쓰게 되었다.

내가 같은 실수를 하지 않기 위해,

나와 같은 어려움을 겪은 분들을 위해 글을 남긴다.




1. DLL 생성



DLL 추가하고자 하는 솔루션에서 마우스 오른쪽 버튼을 눌러 [ 새 프로젝트 추가 ]를 누르고 [ 클래스 라이브러리 ] 를 생성 한다.




생성된 클래스라이브러리에서 나는 wpf 사용자 컨트롤을 사용 할 것이니 사용자 정의 컨트롤(WPF)를 눌러 생성한다.



시작 프로젝트의 참조에서 마우스 오른쪽 버튼을 눌러 [ 참조 추가 ]로 들어간다.



해당 DLL을 체크하고 확인을 누른다. 이후에 생성한 DLL 프로젝트에서 마우스 오른쪽 버튼을 눌러 시작프로젝트로 설정하여 주고

빌드하여 준다. 그렇게 하면 bin\debug 경로에 DLL 파일이 생성된다.


그런데 만약 빌드가 되지 않고 아래 이미지와 같은 에러가 뜬다면



위에서 참조추가 했던것과 마찬가지로 system.xaml을 참조추가하면 해결된다.



이제 DLL은 생성이 완료되었다. 메인윈도우에서 해당 버튼을 눌렀을때 방금 만들었던 사용자컨트롤 창을 띄우게 하면된다.




나는 유저 컨트롤이 생성되는 시점에서 Visibility를 hidden으로 두고 메인윈도우에서 해당 창을 띄우는 버튼을 눌렀을때 창이 visible 상태가 될수있도록 Show 함수를 작성하였다. 이제 메인에 사용자 컨트롤을 컨트롤 할 수 있는 변수를 생성하고 메인 canvas에 해당 childwindow를 add해주면 된다. 아래의

이미지를 참고하자









끝!

+ Recent posts