如果我使用 Caliburn Micro 作为 MVVM 框架来使我的应用程序作为 GUI 或命令行应用程序运行(因此它可以用作 Windows 服务(,我需要进行哪些更改。
不要声明StartupUri
,而是在Application
中注册StartUp
事件。
如果您可以阅读参数以区分是否打开Window
。
所以例如:
App.xaml
<Application x:Class="WpfApp1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApp1"
Startup="App_OnStartup">
</Application>
应用xaml.cs
public partial class App : Application
{
private void App_OnStartup(object sender, StartupEventArgs e)
{
if (e.Args.Contains("Console"))
{
//do stuff
}
else
{
new MainWindow().Show();
}
}
}