从 UserControl 控件中控制窗口关闭

4
我正在使用优秀的MUI库https://mui.codeplex.com/创建我的WPF应用程序。
自定义窗口是作为MUI窗口中的用户控件实现的。要打开一个窗口,请创建Modern Window的实例,将用户控件作为内容传递。到目前为止,这样运行得很好,但我遇到的问题是尝试从用户控件控制父窗口。
当我说“尝试控制”时,我的意思是验证窗口的关闭行为。
用户控件是我编辑数据等所有操作的地方,如果用户正在编辑数据,我想阻止父窗口关闭 - 即“关闭是、否、取消”之类的功能。
我可以成功地从用户控制关闭父窗口,但我无法看到如何反向操作 - 即停止窗口关闭。
请有人帮帮我吗?
谢谢
1个回答

4

我对mui不是很了解,但我认为像这样的代码应该可以解决问题:

public partial class UserControl1 : UserControl
{
    public UserControl1()
    {
        InitializeComponent();

        Loaded += UserControl1_Loaded;
    }

    void UserControl1_Loaded(object sender, RoutedEventArgs e)
    {
        var window = Window.GetWindow(this);
        window.Closing += window_Closing;
    }

    void window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        if (!Valid()) // You can show a message box or whatever logic you want
            e.Cancel = true;
    }
}

在UserControl的Loaded事件中,将一个事件附加到父窗口的Closing事件上。Window parentWindow = Window.GetWindow(this); parentWindow.Closing += parentWindow_Closing; - Muckers Mucker
@MuckersMucker 什么?如果我的回答解决了你的问题,你介意接受一下吗? - Dtex
谢谢,这正是我所做的,但回答自己的问题还为时过早! - Muckers Mucker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接