WPF 传递窗口作为变量
本文关键字:变量 窗口 WPF | 更新日期: 2023-09-27 18:31:37
我有4个窗口。
1. 主题电影.xaml
2. 特定电影.xaml
3. 搜索电影.xaml
4. 视频播放器.xaml
所有前 3 个窗口都可以打开第四个窗口。
我想知道当第四个打开时,哪个打开了第四个并将其存储在变量中(稍后使用它 - 我想像那样使用它:发件人(作为窗口)。Show()),类似于:
Window sender;
public VideoPlayer(Window s)
{
InitializeComponent();
sender = s;
}
private void GoBack()
{
this.Hide();
sender.Show();
}
你想要设置VideoPlayer
窗口的Owner
属性。从每个窗口中打开它:
VideoPlayer vp = new VideoPlayer();
vp.Owner = this;
在VideoPlayer
内部,您可以通过以下方式访问它 this.Owner
.
无需在构造函数中将其作为参数接收。
我重新评论了孩子的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();
}