0

我有一个由 UserControls 而不是 Windows 组成的 WPF 表单。与 Windows 不同,UserControl 没有 aUserControl.CloseUserControl.Closing. 当我的应用程序关闭时,我需要能够通过单击应用程序右上角熟悉的红色 x 来运行代码。有没有人这样做过?请记住,我正在使用 MVVM。

这是页面的 XAML:

<UserControl x:Class="ClassName"
             <!--etc..-->
             >
    <Grid>
        <Grid.ColumnDefinitions>
            <!--Columns-->
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <!--Rows-->
        </Grid.RowDefinitions>
        <!--WPF Content-->
    </Grid>
</UserControl>
4

2 回答 2

1

用户控件没有关闭和关闭事件。因此您可以使用 unloaded 但 unloaded 不会自动触发

要处理用户控件,请阅读以下文章。

http://geekswithblogs.net/cskardon/archive/2008/06/23/dispose-of-a-wpf-usercontrol-ish.aspx

于 2012-05-23T13:39:51.313 回答
0

你没有窗户吗?这怎么可能?你在屏幕外创建它们吗?

好吧,您显然不能完全使用 XAML,但是如果您想在关闭应用程序之前得到通知,那么Application.Exit怎么样。如果您想要一个可拦截和可取消的解决方案,您可以使用主窗口上的Closing(如果有的话)。当然Closed事件也是一个解决方案。最后但并非最不重要的是,您在用户控件上获得了Unloaded 事件。

希望对您有所帮助。

于 2012-05-23T12:59:40.807 回答