WPF (Windows Presentation Foundation) での C# の記事です
環境構築
・Visual Studio Code
・.NET SDK ( .NET のダウンロード (Linux、macOS、Windows) (microsoft.com) )
上記を導入する
プロジェクト作成
・空フォルダを作る
・VSCode でそれを開く
・「dotnet new wpf」を実行する
プログラム起動
dotnet build ※プログラムを変更するたびに実行すること
dotnet run
空のウィンドウが開けば成功
以後、当記事の内容は 2023/11/30 時点のテンプレートで作成された前提で記述している
改造:起動時にメッセージボックスを表示する
イベントをハンドリングする
MainWindow.xaml (フォームのデザイン) の「Window」に
「Loaded」(起動時に動作するイベント) を追加する
Loadedの値は MainWindow.xaml.cs で作るメソッド名となる
<Window x:Class="CSharp_Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:CSharp_Test"
mc:Ignorable="d"
Loaded="Window_Loaded" ←これ
Title="MainWindow" Height="450" Width="800">
<Grid>
</Grid>
</Window>
他イベントを実装したい場合は下記を参照
Window クラス (System.Windows) | Microsoft Learn
MainWindow.xaml.cs に下記を追記する
引数はお決まりの様子
リファレンスにも書いてないが、この指定にしなければならない
private void Window_Loaded(object sender, RoutedEventArgs e){
}
メッセージボックスを表示する
多くのサイトでは System.Windows.Forms を継承して MessageBox を使用するようなサンプルとなっているが、
2023/11/30 時点、System.Windows に MessageBox は存在するので、
System.Windows.Forms を継承する必要はない
(2024/1/28 追記)
WPFのC# と、そうでない C# では名前領域が異なるというだけで、状況によりどちらも間違いではない
WPFの場合は System.Windows の名前領域が正しいというだけ
Loaded イベント が発生したときに実行されるメソッド Window_Loaded の中に下記を記述する
MessageBox.Show(
"test",
"title",
MessageBoxButton.OK
);
リファレンス: MessageBox.Show メソッド (System.Windows) | Microsoft Learn
実行結果
メッセージが表示される
Visual Studio でやるのは嫌なので VSCode での C# 開発を確認してみた
何かしらのツール作成で役立てたい