2016-06-13 6 views
0

내 UserControl Windows 중 하나에 문제가 있습니다. MainWindow가 있고 특정 상황이 나타나면 다른 UserControl이 열립니다. 두 개의 버튼이있어 명령을 보내고 그 후에는 닫아야합니다. 지금은 창을 열고 명령을 보냈지 만 나중에 닫지는 않습니다. 도와 주시면 감사하겠습니다. 코드 : XAML : UserControl 창이 닫히지 않습니다

C 번호 : 코드가있는 UserControl을 열려면 :

Window window = new Window(); 
window.Content = new MsgBox(); 
window.ShowDialog(); 

버튼 선언 : 공공 DelegateCommand OkBtn {얻을; 세트; 같은이 있어야이 Buttonfunction에서

OkBtn = new DelegateCommand<object>(OkBtnFkt); 

:}

Buttonfunction 버튼에 추가 window.Close를();

내가 시도한 것 :

Window.Close(); Dispatcher를 통해 Window.close를 UI에 보냅니다.

+0

표시 할 수있는 코드가 있습니까? – Nzc

+0

일부 코드 – Evosoul

+0

아직 진행중인 작업을 완전히 이해하기에 충분한 코드가 표시되지 않습니다. 예를 들어'MsgBox' (UserControl으로 추정)가 부모 (Window)를 어떻게 닫습니까? 그리고 사용자 정의 모양으로 메시지 상자를 원한다면 UserControl 대신 하위 클래스를 사용하는 것이 어떻습니까? – Jai

답변

0

답변을 찾았습니다. 이 게시물에 대한 답변이 있습니다. http://www.codeproject.com/Questions/91746/Close-WPF-user-control-inside-WPF-form-application

+0

결국 결국 usercontrol에서 부모 창에 대한 참조를 가져올 수 없다는 문제가 발생 했습니까? – Jai

+0

그래, 일종의. 응용 프로그램은 메인 윈도우 내부에 여전히 있기 때문에 닫기 호출을 실행할 수 없습니다. 단추의 명령 매개 변수 때문에 새로 만든 창을 선택해야했습니다. – Evosoul

0

이 대화 상자의 DialogResult를 설정할 수 있습니다. 실제로 UserControl이있는 윈도우가 있습니다. Window에서 파생시킬 MsgBoxWindow를 만들 수 있습니다. 컨트롤과 닫기 버튼을 안에 배치하십시오. 그런 다음 닫기 버튼을 클릭하면 DialogResult를 설정할 수 있습니다.

https://msdn.microsoft.com/en-us/library/system.windows.window.dialogresult(v=vs.110).aspx

어쨌든 당신은 왜 메시지 박스를 사용하지 않는?

+0

"Window"가 UserControl이고 닫아야합니다. 또한이 질문에 몇 가지 코드를 추가했습니다. – Evosoul

+0

디자인 된 MessageBox가 필요합니다. 그것은 다른 것들에 사용해야합니다. 하지만 사실, 그냥 디자인 된 MessageBox를 원합니다. – Evosoul

관련 문제