을 원하지 않는 경우
public partial class MainWindow : Window
{
private void openChild()
{
ChildWindow child = new ChildWindow();
child.Owner = this; // "this" is the parent
child.ShowDialog();
}
}
Aditionally, 나는이 문제를했지만, 창으로 I didn를 뷰 모델에서 열 받고 현재 창에 대한 참조가 없습니다.
이
var myWindow = new MyWindowType();
myWindow.Owner = Application.Current.Windows.OfType<Window>().SingleOrDefault(x => x.IsActive);
당신은 사용할 수 있습니다 : myWindow.Owner = Application.Current.MainWindow;
이
그러나,이 방법은 문제가 발생하면 다음과 같은 열 세 개의 창문이있는 경우 :
MainWindow
|
-----> ChildWindow1
|
-----> ChildWindow2
그런 설정 ChildWindow2 그것을 피해 갈 수있는 방법이 코드를 사용 .Owner = Application.Current.MainWindow는 창 소유자를 부모 창이 아닌 조부모 창으로 설정합니다.
감사합니다. 이 시점에서 유일한 문제는 ViewModel에서 뷰에 대한 정보가 없다는 것입니다. 나는'App.Current.MainWindow'를 시도했지만 제대로 작동하지는 않았다. 어쩌면 내 MVVM 패턴의 구조를 재고해야합니다. – Oszkar
MVVM 문제에 대한 가능한 해결책을 추가했습니다. – MatthiasG
@Oszkar 나는'Application.Current.MainWindow' (응용 프로그램 대신 응용 프로그램)을 사용했고, 정적이기 때문에 MVVM을 괴롭게하지 않고도 정상적으로 작동했습니다. – heltonbiker