如何使用WPF用户控件关闭父窗口

Dar*_*tel 6 c# wpf user-controls wpf-controls

假设我有两个WPF窗口:window_One和window_Two.

  • window_One有一个按钮.单击此按钮将打开window_Two.
  • window_Two包含一个用户控件.
    • 该用户控件有一个关闭window_Two的按钮.

我该如何实现这种情况?

Kar*_*son 17

在您创建的自定义控件内.您可以在按钮事件单击中访问父窗口.

通过使用可视树:

var myWindow = (Window)VisualParent.GetSelfAndAncestors().FirstOrDefault(a => a is Window);
myWindow.Close();
Run Code Online (Sandbox Code Playgroud)

或简单地说:

var myWindow = Window.GetWindow(this);
myWindow.Close();
Run Code Online (Sandbox Code Playgroud)

当然,另一种选择是创建一个自定义事件,显示"MyButtonClicked",然后让托管UserControl的窗口监听此事件,当事件被触发时,关闭当前窗口.

干杯!