0

我有 4 个窗口。
1.SubjectMovies.xaml 2.SpecificMovies.xaml
3.SearchMovies.xaml 4.VideoPlayer.xaml

所有前 3 个窗口都可以打开第四个窗口。
我想知道打开第四个时第四个是哪个openend,并将其存储在变量中(以便以后使用-我想像这样使用它:Sender(as Window).Show()),例如:

Window sender;
public VideoPlayer(Window s)
{
    InitializeComponent();
    sender = s;

}

private void GoBack()
{
    this.Hide();
    sender.Show();
}
4

2 回答 2

2

您要设置窗口的Owner属性。VideoPlayer从您打开的每个窗口:

VideoPlayer vp = new VideoPlayer();
vp.Owner = this;

在里面VideoPlayer你可以通过this.Owner.

无需在构造函数中将其作为参数接收。

于 2013-09-17T08:09:51.957 回答
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();
}
于 2013-09-17T08:07:56.347 回答