61

現在、ファイル操作を行うアプリケーションを開発しており、コンソールまたは UI (WPF を選択) を介して操作できるようにしたいと考えています。

私はかなり言いたいです:(疑似)

if ( Environment.GetCommandLineArgs().Length > 0 )
{
    //Do not Open WPF UI, Instead do manipulate based
    //on the arguments passed in
}
else
{
    //Open the WPF UI
}

プログラムでWPFウィンドウ/アプリケーションを開始するいくつかの異なる方法について読みました:

Application app = new Application ();
app.Run(new Window1());

しかし、これをコンソールアプリケーションにプラグインしたいだけかどうかは完全にはわかりません。

これを達成する方法に関するベストプラクティスや推奨事項はありますか? 主な処理機能は、私が作成したヘルパー クラスにあります。したがって、基本的には、渡された引数に応じて、静的な開始メソッド (標準のコンソール アプリケーションの作成など) または UI がヘルパー クラスにアクセスする必要があります。

4

2 に答える 2

128

Applicationクラスには「StartUp 」というイベントがあり、それを使うことができます。コマンドプロンプトから提供する引数を提供します。MSDNの例を次に示します。

App.xaml

<Application x:Class="WpfApplication99.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         Startup="App_Startup">
</Application>

App.xaml.cs

public partial class App : Application
{
    void App_Startup(object sender, StartupEventArgs e)
    {
        // Application is running
        // Process command line args
        bool startMinimized = false;
        for (int i = 0; i != e.Args.Length; ++i)
        {
            if (e.Args[i] == "/StartMinimized")
            {
                startMinimized = true;
            }
        }

        // Create main application window, starting minimized if specified
        MainWindow mainWindow = new MainWindow();
        if (startMinimized)
        {
            mainWindow.WindowState = WindowState.Minimized;
        }
        mainWindow.Show();
    }
}

これが役立つことを願っています。

于 2012-08-02T02:37:52.307 に答える