我想在我的command line
应用程序中添加WPF
个选项但是如果命令行被发送到我的EXE file
我不希望UI
打开但只有命令行选项。
有可能做这样的事吗?
public partial class MainWindow : MetroWindow
{
public MainWindow()
{
string[] args = Environment.GetCommandLineArgs();
if (args.Length > 1)
{
this.Hide();
ParseArgs(args);
}
else
{
InitializeComponent();
}
}
private void ParseArgs(string[] args)
{
// bla bla
}
}
答案 0 :(得分:0)
这个Replacing WPF entry point就是您想要做的。
在那里,您可以获取命令行参数,并决定是否要显示主窗口。
如果在运行应用程序时需要编写命令行中显示的输出,则需要执行this之类的操作:
右键单击项目,"属性","应用程序"选项卡,更改"输出类型"到"控制台应用程序",然后它还将有一个控制台。
但是,一旦执行此操作,即使您不是从命令行启动应用程序,也会弹出一个控制台窗口。没有办法同时使用它 - 应用程序是可以启动窗口的命令行应用程序,或者它是一个窗口应用程序,它无法写入启动它的控制台。这是Windows中的限制 - 决定它位于PE头中的位。
此问题讨论了这一点in great detail, and offers several hacks to achieve what you want.
您可能想要实际搜索您的问题,因为我已经计算了至少5个专门针对此(新)主题的SO问题。
答案 1 :(得分:0)
您应该在app.xaml中执行此操作。
我解释说:
您放置了一个应用程序启动方法处理程序(而不是使用启动uri)。在这里,您可以解析cl参数,然后设置StartupUri = MainWindow.xaml,它将打开您的窗口。如果你不打开主窗口,那么你就不会设置启动uri。