我有4个窗户
1. SubjectMovies.xaml
2. SpecificMovies.xaml
3. SearchMovies.xaml
4. VideoPlayer.xaml
所有前3个窗口都可以打开第4个窗口 我想知道在打开第四个时将哪一个打开第四个并将其存储在变量中(以后再使用它 - 我想使用它:Sender(如Window).Show()),类似于:
Window sender;
public VideoPlayer(Window s)
{
InitializeComponent();
sender = s;
}
private void GoBack()
{
this.Hide();
sender.Show();
}
答案 0 :(得分:2)
您想要设置VideoPlayer
窗口的Owner
属性。
从每个窗口打开它:
VideoPlayer vp = new VideoPlayer();
vp.Owner = this;
在VideoPlayer
内,您可以this.Owner
访问它。
无需将其作为构造函数中的参数接收。
答案 1 :(得分:0)
我建议儿童使用ShowDialog来实现这一目标,因为孩子不应该对他的父母负责。
示例:
public void OpenVideoPlayer()
{
VideoPlayer vp = new VideoPlayer();
this.Hide();
vp.ShowDialog();
this.Show();
}
这样孩子就不依赖父母了。此外,如果您不想隐藏父级,而是将其最小化,则父级可以控制它。
有事件:
public void OpenVideoPlayer()
{
VideoPlayer vp = new VideoPlayer();
vp.Closed += vp_Closed;
this.Hide();
vp.Show();
}
void wnd_Closed(object sender, EventArgs e)
{
this.Show();
}