C# WPF无窗口MessageBox

C# WPF无窗口MessageBox,c#,.net,wpf,messagebox,windowless,C#,.net,Wpf,Messagebox,Windowless,我正在尝试将一个非常小的C#控制台应用程序转换为WPF应用程序。它接收一些参数,做一些工作,并可能会显示一个MessageBox namespace MyApp{ public class EntryPoint { [STAThread] public static void Main(string[] args) { App app = new App(); app.Run(); MessageBox.Show("test",

我正在尝试将一个非常小的C#控制台应用程序转换为WPF应用程序。它接收一些参数,做一些工作,并可能会显示一个MessageBox

namespace MyApp{
  public class EntryPoint {
    [STAThread]
    public static void Main(string[] args) {
        App app = new App();
        app.Run();
        MessageBox.Show("test", "test", MessageBoxButton.YesNo, MessageBoxImage.Question);
    }
  }
}
我将它从控制台应用程序移动到WPF,因为它应该不可见地运行,除非它有错误消息

到目前为止,这个问题一直在让它显示MessageBox。下面是一个非常简短的版本,它编译、运行。。。但不显示MessageBox

namespace MyApp{
  public class EntryPoint {
    [STAThread]
    public static void Main(string[] args) {
        App app = new App();
        app.Run();
        MessageBox.Show("test", "test", MessageBoxButton.YesNo, MessageBoxImage.Question);
    }
  }
}

有人知道如何在没有主程序窗口的情况下显示这个讨厌的消息框吗?

您最好的选择可能是尝试在应用程序的
启动事件中运行代码。请记住,WPF并不是真正设计成这样使用的,所以可能有一些奇怪的地方

首先在解决方案资源管理器中打开“App.xaml`。xaml的根目录如下所示:

<Application x:Class="Configurator.Application.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:FoodSafetyConfigurator"
             xmlns:s="clr-namespace:Configurator.Application.Properties"
             StartupUri="MainForm.xaml">
private void App_OnStartup(object sender, StartupEventArgs e)
{
    //Your code goes here.
}

在此处添加要运行的任何代码。使用
MessageBox.Show()显示的任何消息框
应该可以正确显示,但我还没有实际测试过它。

我最终使用了一个标准的Windows窗体应用程序,只是删除了该窗体。弄清楚如何让WPF这样做非常耗时、令人沮丧,最终还是失败了。窗体可能不是新的热门,但它可以工作。

app.Run
直到在程序退出后,对
MessageBox
的调用将不会像您预期的那样执行。您必须将
MessageBox
移动到代码中的其他地方。我们不能更具体地告诉您,因为您没有向我们显示任何其他代码。这就是它的全部内容。我对WPF完全陌生,不知道如何构建一个无窗口的应用程序。你可以将所有代码放在app.xaml的应用程序启动事件中,并删除所有表单。这是我的第一个WPF应用程序,并且不知道如何执行你所说的。xaml文件中唯一的代码是VS创建的默认代码…所有这些都与主程序窗口有关,我有since已从CS文件中删除。我将添加一个带有一些代码的答案。我很抱歉……但这确实是我有史以来第一个WPF应用程序。我不确定将您描述的函数放在app.xaml.CS文件中的何处。在类中的任何位置,您的意思是替换Main()?是的,在此场景中,
App_OnStartp
将充当控制台应用程序中的
Main
方法。错误1'MyApp.App'不包含'App_OnStartup'的定义,并且找不到接受第一个'MyApp.App'类型参数的扩展方法'App_OnStartup'(是否缺少using指令或程序集引用?)