2016-04-11 9 views
0

非常に小さなC#コンソールアプリケーションをWPFアプリケーションに変換しようとしています。それはいくつかのパラメータを取り込み、いくつか動作し、MessageBoxを呼び出すかもしれません。WPF WindowLess MessageBox

エラーメッセージが表示されない限り、コンソールアプリケーションから非表示にする必要があるため、これをWPFに移動します。

これまでのところ、ヒッチはMessageBoxを表示しています。以下はコンパイルして実行する本当に短いバージョンですが、MessageBoxは表示されません。

メインプログラムウィンドウを持たずに、厄介なMessageBoxを表示する方法を知っていますか?

+0

'app.Run'はプログラムが終了するまで完了しないので、' MessageBox'の呼び出しは期待通りに実行されません。コード内の他の場所の 'MessageBox'を移動しなければなりません。あなたが他のコードを私たちに示していないので、私は本当に私を特定できません。 –

+0

それは文字どおりそこにあるすべてです。私はWPFを全く新しくしており、ウインドウなしのアプリケーションを構築する方法を特定していません。 – ltwally

+0

すべてのコードをapp.xamlのアプリケーション起動イベントに入れて、すべてのフォームを取り除くことができます。 –

答えて

0

あなたの最善の策は、アプリケーションのStartupイベントでコードを実行してみることです。 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"> 

StartupUri="MainForm.xaml"属性を削除し、そしてStartup="App_OnStartup"と交換WPFを停止すること。 App_Starupと呼ばれる "App.xaml.cs"のメソッドに起動イベントをフックします。

ソリューションエクスプローラで "App.xaml"を展開し、 "App.xaml.cs"を開きます。これは "App.xaml"のコードビハインドファイルです。App_OnStartupというメソッドを追加します。以前に付けたイベントのターゲット。

private void App_OnStartup(object sender, StartupEventArgs e) 
{ 
    //Your code goes here. 
} 

ここで実行したいコードを追加します。 MessageBox.Show()で表示するメッセージボックスはすべてと正しく表示されますが、実際にはテストしていません。

+0

私はお詫びします...しかし、これは本当に私の最初のWPFアプリです。 App.xaml.csファイルの中で記述した関数をどこに置くべきかはわかりません。 – ltwally

+0

クラス内のどこでも –

+0

これは、Main()を置き換えることを意味しますか? – ltwally

0

私は標準のWindows Formsアプリケーションを使い、フォームを削除しました。 WPFにこれを行う方法を理解することは、時間がかかり、欲求不満で、最終的には失敗であった。フォームは新しい暑さではないかもしれませんが、機能します。