2016-11-10 7 views
1

アプリケーションを起動する前に電子メールIDとパスワードを取得する必要のあるアプリケーション。私は処理のためにこの情報を取得する必要があります、アプリケーションはXAML/C#を使用してビルドですか?カスタムダイアログボックスを使用してこれをどのように達成できますか?アプリケーション起動時のダイアログボックスをc#/ Xamlに追加

は、デフォルトでは、あなた

+0

@Basvo StartupUriを変更して新しいページを作成しようとしました....しかし、新しいページを呼び出して値を取得するようなものです。私はダイアログを開き、ユーザから価値を得ることを望む – user5928466

+0

あなたのコードを投稿することはできますか? – Basvo

+0

@Basvoすぐにコードがありません。もしあなたがこれに関して役に立つものがあればそれを投稿してください。 – user5928466

答えて

0

に感謝し、(アプリケーションから派生)新しいWPFアプリケーションで自動生成型「のアプリが」(アプリケーションプロパティを参照)スタートアップオブジェクトとして設定されています。

a)このオブジェクトを、Appをインスタンス化し、資格情報が提供された後にApp.run()を呼び出す独自の型に置き換えます。入力方法は[STAThread]で宣言してください。

[STAThread]  
    public static int Main() 
    { 
    MyOperations(); 
    var app = new App(); 
    app.Run(); 
    } 

b)はApp.xaml.csでOnStartupオーバーライド:

protected override void OnStartup(StartupEventArgs e) 
    { 
    base.OnStartup(e); 
    MyOperations(); 
    } 

編集:私はポイントを逃している可能性があります。メインウィンドウを表示する前に別のWPFウィンドウを表示する場合は、オプションb)を使用できますが、ログインマスクを表示する前にApplication.Current.ShutdownModeを変更する必要があります。そうしないと、プログラムは終了後に終了します。

これは、既存のファイルApp.xaml.cs(ソリューションエクスプローラで非表示になっているため、App.xamlを展開して確認する必要があります)の内容になります。

using System.Windows; 

namespace WpfApplication1 
{ 
    /// <summary> 
    /// Interaction logic for App.xaml 
    /// </summary> 
    public partial class App : Application 
    { 
     protected override void OnStartup(StartupEventArgs e) 
     { 
     base.OnStartup(e); 
     ShutdownMode = ShutdownMode.OnExplicitShutdown; 
     var loginWindow = new Login(); 
     loginWindow.ShowDialog(); 
     if (!loginWindow.LoggedIn) 
     { 
      Shutdown(); 
      return; 
     } 
     ShutdownMode = ShutdownMode.OnLastWindowClose; 
     } 
    } 
} 
+0

私は理解できるようにデモのファイルを共有できますか? – user5928466

+0

私はあなたを理解しているかどうかわかりません... ;-)私は、このためにApp.xaml.csを編集することを明確にするために投稿を更新しました。 – Udontknow

関連する問題