C# 如何通过单击控件模板中的按钮关闭窗口

C# 如何通过单击控件模板中的按钮关闭窗口,c#,wpf,C#,Wpf,我有一个名为winow1的窗口。下面是我在window1.xaml中编写的代码 <Window x:Class="Template.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Style="{DynamicResource WindowStyle1}" Titl

我有一个名为winow1的窗口。下面是我在window1.xaml中编写的代码

<Window x:Class="Template.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Style="{DynamicResource WindowStyle1}" Title="Window1">
<Grid></Grid>

谢谢您的建议。

我通常在App.cs中使用此功能

private void btnExit_Click(object sender, RoutedEventArgs e)
{
    var b = e.OriginalSource as System.Windows.Controls.Button;
    var w = b.TemplatedParent as Window;
    w.Close();
}

窗口
类上使用静态函数
GetWindow

private void button1_Click(object sender, RoutedEventArgs e)
{
    var window = Window.GetWindow(sender as DependencyObject);
    if (window != null) window.Close();
}

如果要从应用于控件(而不是窗口本身)的模板关闭窗口,请使用以下代码:

private void OnButtonClick(object sender, RoutedEventArgs e)
{
    Button button = (Button)sender;
    Window window = Window.GetWindow(button);

    window .Close();
}

这是获取窗口的常用方法。

奇怪的是,
System.Windows.Window
类上有一个名为
Close()
的方法。你试着给它打电话了吗?到目前为止做得不错,但是你对关闭窗口做了哪些研究?我的朋友,这个答案可能会让你大吃一惊。祝你好运
private void button1_Click(object sender, RoutedEventArgs e)
{
    var window = Window.GetWindow(sender as DependencyObject);
    if (window != null) window.Close();
}
private void OnButtonClick(object sender, RoutedEventArgs e)
{
    Button button = (Button)sender;
    Window window = Window.GetWindow(button);

    window .Close();
}