別のウィンドウを表示する - WPF

WPFアプリで別のウィンドウを表示するコードを紹介します。

概要

別のウィンドウを表示する場合は、ウィンドウクラスのインスタンスを作成し、Show() メソッドを実行すると表示できます。

プログラム / 実装例

プロジェクトの作成

WPFアプリケーションのプロジェクトを作成します。


WPFアプリケーションのプロジェクトが作成されました。


[ソリューションエクスプローラ]で右クリックしポップアップメニューを表示します。メニューの[追加]の[新しい項目]をクリックします。


[新しい項目の追加]ウィンドウが表示されます。一覧から[ウィンドウ(WPF)]を選択します。[名前]の欄にファイル名を設定します。


ウィンドウが追加されます。ソリューションエクスプローラに項目が追加されたことが確認できます。

UI

下図のUIを作成します。

MainWindow.xaml

LabelとButtonを配置します。

SubWindow.xaml

Labelを配置します。

コード

下記のコードを記述します。MainWindow.xaml の[Button]のClickイベントを実装します。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfShowWindow
{
  /// <summary>
  /// MainWindow.xaml の相互作用ロジック
  /// </summary>
  public partial class MainWindow : Window
  {
    public MainWindow()
    {
      InitializeComponent();
    }

    private void button_Click(object sender, RoutedEventArgs e)
    {
      SubWindow sw = new SubWindow();
      sw.Show();
    }
  }
}

解説

SubWindowクラスのインスタンスオブジェクトを作成します。
  SubWindow sw = new SubWindow();

作成した、インスタンスオブジェクトの Show メソッドを呼び出します。
  sw.Show();

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


[Button]をクリックすると、SubWindowが表示されます。


今回のコードでは、親子関係が設定されていないため、MainWindowを閉じてもSubWindowは表示されたままとなり、アプリケーションは終了しません。


タスクバーでの表示は下図になります。


著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2016-06-09
iPentec all rights reserverd.