【问题标题】:WPF Window Closing does not work after Cancel [closed]取消后WPF窗口关闭不起作用[关闭]
【发布时间】:2018-01-18 06:03:51
【问题描述】:

我有一个似乎无法通过 Google 解决的问题(可能是因为我没有搜索正确的标准)。我有一个关闭事件,它检查是否启用了按钮并弹出一个带有结果的消息框(是/否)。如果用户说不,我会在应用程序中得到想要的结果;但是,右上角的 X 停止工作。如何“恢复”关闭按钮(右上角的“X”),以便在按下时再次工作(并再次评估逻辑)。

我试过这个:Stackoverflow Question

我不认为我想玩窗口的可见性。窗户哪儿也去不了。他们有脏数据,需要修复或自动保存。

我在应用程序中拥有的是:

        private void DXWindow_Closing(object sender, CancelEventArgs e)
    {

        if (BtnPatSave.IsEnabled == false) return;
        if (MessageBox.Show(Properties.Resources.PatAcctMsgBox3, Properties.Resources.PatAcctMsgBox1,
                MessageBoxButton.YesNo,
                MessageBoxImage.Warning) == MessageBoxResult.No)
        {
            e.Cancel = true;
        }
        else
        {
            var patId = TbPatId.Text;
            var usl = new UnSetLockValue();
            usl.UnSetVal(patId);
            Log.Info("Patient Account is now unlocked by user: " + Environment.UserName);
        }
    }

【问题讨论】:

  • 解决了我自己的问题。在加载的事件中, var b = LayoutHelper.FindElement(this, o => { if (o is Button) return o.Name == "PART_CloseButton"; return false; }) as Button; b.Visbility = Visibility.Collapsed;

标签: c# wpf events


【解决方案1】:

那是因为您使用的是 MessageBox 类。 它禁用“X”按钮以允许用户仅提供您指定的值。 如果您不希望这种行为,我认为您必须创建自己的“MessageBox”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 2016-01-22
    • 2012-06-28
    • 2011-04-03
    • 2013-01-02
    相关资源
    最近更新 更多