如何询问用户是否使用另一个 WPF 窗口关闭项目?

用户9284186

这是 MainWindow xaml 代码。

<Window x:Class="MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Name="MainWindow" 
    Height="300" 
    Width="500">
</Window> 

这是 Window1 xaml 代码。

<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="Window1" 
Height="200" 
Width="500">

<Grid>
    <DockPanel LastChildFill="False">
        <TextBlock DockPanel.Dock="Top" HorizontalAlignment="Stretch" TextWrapping="Wrap" TextAlignment="Justify" Margin="10,20,10,0">
            <TextBlock.Inlines>
                <Run Name="Inline1" Text="Message"/>
            </TextBlock.Inlines>
        </TextBlock>

        <DockPanel DockPanel.Dock="Bottom" LastChildFill="False">
            <Button Name="Button1" Content="No" Width="70" DockPanel.Dock="Right"/>
            <Button Name="Button2" Content="Yes" Width="70" DockPanel.Dock="Right"/>
        </DockPanel>
    </DockPanel>
</Grid>
</Window>

这是 MainWindow vb 代码。

Class MainWindow

Private Sub MainWindow_Closing(sender As System.Object, e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
    Dim myWindow As New Window1()
    myWindow.Owner = Application.Current.MainWindow
    myWindow.Inline1.Text = "Do you really want to quit?"
    myWindow.ShowDialog()
    e.Cancel = True
End Sub

End Class

这是 Window1 vb 代码。

Public Class Window1

Private Sub Button2_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button2.Click
    System.Windows.Application.Current.Shutdown()
End Sub

Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
    Me.Close()
End Sub

End Class

1-运行这个项目。

2- 单击X以关闭此项目。

3-当项目询问您是否真的要退出时,单击按钮?

4- 见以下错误;

https://prnt.sc/ih9l5f

我想(如果我错了,请纠正我)您想从 [Window1] 接收回输入,这有点像要求关闭的消息框?所以我想有几个按钮 [Yes]/[No] [Confirm]/[Dont Shutdown] 用户点击了?

如果是这样......在Window1类中声明一个公共布尔值,然后在关闭或应用程序关闭之前根据需要将布尔值设置为true / false。

Public Class Window1
Public Confirmed as boolean = false

'I have set to default as boolean as the user could theroretically close the
'form and not click on either button!?

Private Sub Button2_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button2.Click
    Confirmed = true
    ''System.Windows.Application.Current.Shutdown()
    me.close
End Sub

Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
    Confirmed = false
    Me.Close()
End Sub

End Class



Class MainWindow

Private Sub MainWindow_Closing(sender As System.Object, e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
    Dim myWindow As New Window1()
    ''myWindow.Owner = Application.Current.MainWindow ''I dont know why you need this?
    myWindow.Inline1.Text = "Do you really want to quit?"
    myWindow.ShowDialog()
    if mywindow.confirmed then
         System.Windows.Application.Current.Shutdown()
         ''or simply..
         ''application.exit()
    else
         e.Cancel = True
    end if

End Sub

End Class

这绝不是唯一的方法,请不要将此答案视为完全正确,因为您的情况可以通过多种方式实现,其中一种方式是您已经完成的方式。老实说,我可以看到为什么/如何在 showdialog 上发生错误,但是删除窗口并在 MainWindow 中处理会消除 Window1 的问题/错误。

希望这在某种程度上有所帮助 鸡

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从另一个进程显示WPF窗口

WPF 将对象从窗口的用户控件传递到另一个窗口的用户控件

如何使用 wpf 中的 inotifypropertychanged 事件从另一个窗口更新属性

如何在WPF中从一个窗口移到另一个窗口?

如何在WPF中使用另一个项目的资源?

子窗口关闭后,如何关闭子窗口?(WPF)

从另一个 WPF 窗口继承列表

如何防止/关闭 WPF 窗口加载?

如何使WPF窗口保持在另一个窗口之上?

如何在WPF的同一窗口中从另一个控件调用UserControl?

如何在WPF中将对象从一个窗口绑定到另一个窗口中的另一个控件?(C#)

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

如何从WPF的另一个窗口中的一个窗口访问控制器

从另一个更新WPF窗口(不是MainWindow)中的datagrid。*不使用MVVM *

如何在另一个项目 WPF 中引用枚举

在Wpf GridView中,如何将控件绑定到一个项目中的另一个控件

关闭WPF窗口

WPF MVVM关闭窗口

如何检查某个用户是否选择了另一个用户将要选择的项目?

如何将WPF窗口嵌入另一个窗口并通过XAML或代码调整其大小

如何将一个 DLL 编译按钮从一个 WPF 项目添加到另一个项目的事件处理程序?

如何关闭另一个类的主窗口?

如何“等待”另一个窗口的关闭

在Kivy中,如何使用另一个班级的关闭按钮关闭弹出窗口?

如何使用JTable打开窗口并关闭另一个窗口

如何从另一个应用程序关闭WPF系统任务栏应用程序?

当下拉菜单在另一个组合框上关闭时,如何更新 WPF 组合框?

如何将页面加载到另一个wpf页面开始的窗口中的框架中?

如何将应用程序控制传递给另一个WPF窗口?