0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WPF定石 - スタートアップルーチン

Posted at

はじめに

C# - WPF ソフト開発時に、決まり事として実施していた内容を記載します。

テスト環境

ここに記載した情報/ソースコードは、Visual Studio Community 2022 を利用した下記プロジェクトで生成したモジュールを Windows 11 24H2 で動作確認しています。

  • WPF - .NET Framework 4.8
  • WPF - .NET 8

スタートアップルーチン

デフォルトだと App.xaml の StartupUri 属性に指定された Window が開かれます。
この形態だと、起動前処理などを記述することができません。
Windows Forms で Program.cs に記載していた起動前処理、および、起動後処理は、下記イベントを利用することで対処可能です。

サンプルコード

.NET Framework / .NET ともに同一ソースコードです。
App.xaml で StartupUri を削除して Startup="App_Startup" Exit="App_Exit" を追加します。

App.xaml
<Application x:Class="Hoge.App"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:local="clr-namespace:Hoge"
  Startup="App_Startup" Exit="App_Exit">
  <Application.Resources>
  </Application.Resources>
</Application>

App.xaml.cs で App_Startup と App_Exit を実装します。

App.xaml.cs
public partial class App : Application
{
  private void App_Startup(object sender, StartupEventArgs e)
  {
    // TODO:起動前処理
    
    // メインウィンドウ
    var mainWindow = new MainWindow();
    mainWindow.Show();
  }
  private void App_Exit(object sender, ExitEventArgs e)
  {
    // TODO:起動後処理
  }
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?