12
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

.NET Core 3.1とVisual Studioでデスクトップアプリ

Last updated at Posted at 2019-12-08

■はじめに

.NET Core 3.1Visual Studioで画面デザイナを軽く触ってみます。

net31gui16.png

■対象読者

.NET Coreで初めてGUIやる人。

■環境

  • Windows 10
  • .NET Core 3.1
  • Visual Studio 2019

■準備

Visual Studio 2019のバージョンが16.4未満ならアップデートしておきます。

net31gui01.png

■プロジェクトの作成

[新しいプロジェクトの作成]を選択します。
net31gui02.png

言語にC#、プラットフォームにWindowsを選択し、検索ボックスにwpfを入力します。
一覧からWPF App (.NET Core)を選択し、[次へ]を選択します。
net31gui03.png

プロジェクト名を入力し、[作成]を選択します。
net31gui04.png

net31gui05.png

■画面作成

◇画面分割

まず画面を左右に分割します。
Windowの白い部分(Grid)を選択状態にし、タイトルバー近辺で中央より右側にマウスカーソルをポイントします。
分割できる部分の上にカーソルが乗ると+マークが出るのでクリックします。
net31gui06.png

Gridが分割されました。
net31gui07.png

◇コンテナコントロールの追加

分割したGridの左側にViewboxを追加します。
ツールバーの検索ボックスにvを入力してフィルタリングし、Viewboxをドラッグ&ドロップします。
net31gui08.png

分割したGridの右側にStackPanelをドラッグ&ドロップします。
net31gui09.png

◇コントロールの追加

左側(Viewbox)にCalendarをドラッグ&ドロップします。
net31gui10.png

右側(StackPanel)にButtonを3回、ドラッグ&ドロップします。
net31gui11.png

◇ボタンクリック時の処理作成

まずカレンダーに名前を付けます。
カレンダーを選択し、プロパティウィンドウの[名前]にcalを入力します。
net31gui12.png

1番上のボタンをダブルクリックすると自動的にイベントハンドラが作成され、コード編集用のタブに飛ぶので以下を入力します。

private void Button_Click(object sender, RoutedEventArgs e)
{
    // カレンダーで選択した日付の年を表示
    MessageBox.Show(cal.SelectedDate?.ToString("yyyy年"));
}

2番目、3番目も同様にコードを記述します。

private void Button_Click_1(object sender, RoutedEventArgs e)
{
    // カレンダーで選択した日付の月を表示
    MessageBox.Show(cal.SelectedDate?.ToString("MM月"));
}

private void Button_Click_2(object sender, RoutedEventArgs e)
{
    // カレンダーで選択した日付の日を表示
    MessageBox.Show(cal.SelectedDate?.ToString("dd日"));
}

net31gui13.png

◇その他プロパティ設定

ウィンドウにサイズ変更グリップを表示し、サイズ変更しやすくします。
タイトルバー部分をクリックしてWindowを選択状態にし、プロパティウィンドウのResizeModeでCanResizeWithGripを選択します。
net31gui14.png

■実行してみる

緑の三角ボタンを押してプログラムを起動します。
net31gui40.png

右下のグリップをつかんでウィンドウサイズを変えてみます。
net31gui15.png

net31gui16.png

ボタンを押してみます。
まだカレンダーで日付を選択していないため、メッセージは空です。
net31gui17.png

カレンダーで適当に日付を選択してからボタンを押すと今度は表示されました。
net31gui18.png

■続き

.NET Core 3.1 GUIコントロール

12
19
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
12
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?