Wpf 从另一个窗口接收结果

Wpf 从另一个窗口接收结果,wpf,vb.net,com,modal-dialog,itunes,Wpf,Vb.net,Com,Modal Dialog,Itunes,我想在调用iTunes.OnQuittingEvent时显示一个对话框 (我有一个使用COM连接到iTunes的WPF应用程序) 我要创建的这个对话框将询问用户是否要关闭iTunes,他们也必须关闭应用程序。因此,如果他们单击该按钮,iTunes,对话框和应用程序将关闭 但是。如果他们单击“取消”按钮,它将关闭对话框并取消退出iTunes 有人能帮我吗?对不起,我还没有任何代码或屏幕截图,我还没有弄清楚包括设计在内的一切 这是我目前得到的全部信息: 在主窗口中: 对于您的对话框,您可以使用以下内

我想在调用iTunes.OnQuittingEvent时显示一个对话框

(我有一个使用COM连接到iTunes的WPF应用程序)

我要创建的这个对话框将询问用户是否要关闭iTunes,他们也必须关闭应用程序。因此,如果他们单击该按钮,iTunes,对话框和应用程序将关闭

但是。如果他们单击“取消”按钮,它将关闭对话框并取消退出iTunes

有人能帮我吗?对不起,我还没有任何代码或屏幕截图,我还没有弄清楚包括设计在内的一切

这是我目前得到的全部信息:

在主窗口中:


对于您的对话框,您可以使用以下内容

Dim result As MessageBoxResult = MessageBox.Show("Message Test", "Caption", MessageBoxButtons.OKCancel)

        Select Case result
            Case MessageBoxResult.OK
            Case MessageBoxResult.Cancel
        End Select
这将为您提供一个带有确定/取消选项的模式消息框

然后,您可以使用case语句决定要做什么

要创建自定义对话框,您可以使用如下内容

下面是一个简单的例子

XAML

你可以这样使用它

Dim messageWindow As New MessageWindow()

        messageWindow.ShowDialog()

        Dim result As MessageBoxResult = messageWindow.MessageResponse
        'handle response

注意:如果只有两个可能的响应,则可以使用Window的dialogresult属性,该属性是从Window的showdialog函数返回的。例如,您可以使用dialogresult=true表示“确定”,dialogresult=false表示“取消”。

但我想使用我制作的对话框窗口在消息框中创建个性化对话框,您可以设置标题和消息内容。如果您需要更个性化的颜色、图形、自定义布局等,请使用窗口进行定制。如果为messagebox enum still指定messagebox Result属性,则可以在窗口关闭时使用它返回users选项。你可以通过调用showdialog而不是show来创建窗口模式。我想这就是我要找的。你能帮我创建代码吗?很抱歉,我刚刚开始学习这些东西。我已经用一个基本的窗口布局扩展了原始答案,设置为一个对话框。您可以在XAML中根据自己的喜好定制布局。非常感谢!!!!!最后一个,我如何在主窗口中调用它?我很抱歉:(我只是对对话和接收一无所知
<Window x:Class="MessageWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="DialogWindow" Height="150" MaxHeight="450" Width="400" MaxWidth="600" SizeToContent="WidthAndHeight" WindowStartupLocation="CenterScreen">
            <StackPanel Orientation="Horizontal">
                <Button Name="btnYes" Content="Yes" Click="btnYes_Click"></Button>
                <Button Name="btnNo" Content="No" Click="btnNo_Click"></Button>
                <Button Name="btnCancel" Content="Cancel" Click="btnCancel_Click"></Button>

            </StackPanel></Window>
Public Class MessageWindow

    Private _messageResponse As MessageBoxResult

    Public Property MessageResponse As MessageBoxResult
        Get
            Return _messageResponse
        End Get
        Set(value As MessageBoxResult)
            _messageResponse = value
        End Set
    End Property

    Private Sub btnYes_Click(sender As System.Object, e As System.Windows.RoutedEventArgs)
        DialogResult = True
        _messageResponse = MessageBoxResult.Yes
        Me.Close()
    End Sub

    Private Sub btnNo_Click(sender As System.Object, e As System.Windows.RoutedEventArgs)
        DialogResult = False
        _messageResponse = MessageBoxResult.No
        Me.Close()
    End Sub

    Private Sub btnCancel_Click(sender As System.Object, e As System.Windows.RoutedEventArgs)
        DialogResult = False
        _messageResponse = MessageBoxResult.Cancel
        Me.Close()
    End Sub
End Class
Dim messageWindow As New MessageWindow()

        messageWindow.ShowDialog()

        Dim result As MessageBoxResult = messageWindow.MessageResponse
        'handle response