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

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

概要

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

プログラム / 実装例

プロジェクトの作成

WPFアプリケーションのプロジェクトを作成します。
別のウィンドウを表示する:画像1

WPFアプリケーションのプロジェクトが作成されました。
別のウィンドウを表示する:画像2

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

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

ウィンドウが追加されます。ソリューションエクスプローラに項目が追加されたことが確認できます。
別のウィンドウを表示する:画像5

UI

下図のUIを作成します。

MainWindow.xaml

LabelとButtonを配置します。
別のウィンドウを表示する:画像6

SubWindow.xaml

Labelを配置します。
別のウィンドウを表示する:画像7

コード

下記のコードを記述します。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();

実行結果

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

[Button]をクリックすると、SubWindowが表示されます。
別のウィンドウを表示する:画像9

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

タスクバーでの表示は下図になります。
別のウィンドウを表示する:画像11


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