2016-06-28 9 views
-1

ウィンドウを1回だけ表示したい。このユーザーがボタンをクリックすると:ウィンドウを1回だけ表示する方法は?

private void Notification_Click(object sender, RoutedEventArgs e) 
    { 
     NotificationSettings notifications = new NotificationSettings(); 
     notifications.ShowDialog(); 
    } 

が、これは新しいウィンドウを作成します、私はすでに存在する場合、ウィンドウは、ユーザーが新しいものを開くことができません開くことを望みます。コンパイラにこれを伝えるオプションがxamlにありますか?私はvb.netを覚えています。これは、ウィンドウを1つだけ表示するオプションを設定することを可能にするWindowsフォームです。

ありがとうございました。

+2

をあなたは 'ShowDialog'(使用している場合モーダル)では、ユーザーはとにかく何もできないはずはありませんか? –

+0

ShowDialogも親ウィンドウの入力をブロックします –

+0

あなたがあなたのコードでそれを持っていたと仮定すると、あなたが実際にそれを望むことになるでしょう。 –

答えて

0

フィールド/プロパティでウィンドウへの参照を保持し、それがすでにVisisbleであるかどうかを確認してください。

+0

私はこれを使っていますが、実際にコードを追加する必要があります。 –

+0

なぜこのような単純なものを提供していないのですか? –

+1

2行のコードで簡単にモデル化できるため、そのような機能を提供する必要はありません。 –

0

だけでなく、私はまさにNotificationSettings何であるかわからないが、ウィンドウのためにこのコードをチェックし、窓を開閉する際にマークするブールフラグを作成することができます。

public partial class MainWindow : Window 
{ 

    public MainWindow() 
    { 
     InitializeComponent(); 
    } 

    bool WindowFlag = false; 

    private void button_Click_1(object sender, RoutedEventArgs e) 
    { 
     Window TestWindows = new Window(); 
     TestWindows.Closing += TestWindows_Closing; 

     if (WindowFlag == true) 
     {    
      MessageBox.Show("The Window is already opened"); 
     } 
     else 
     { 
      TestWindows.Show(); 
      WindowFlag = true; 
     } 
    } 

    private void TestWindows_Closing(object sender, System.ComponentModel.CancelEventArgs e) 
    { 
     WindowFlag = false; 
    } 
} 
関連する問題