WinForms の暗黒モードと可変レイアウト

3.1K Views

June 04, 24

スライド概要

C# Tokyo イベントの発表スライド。
WinForms のダークモードと可変レイアウトについてです

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

WinForms の暗黒モード と可変レイアウト 【オンライン】Build 後! C# Tokyo イベント 石崎 充良 1 / 30

2.

自己紹介 石崎 充良 ( @mishi_cs ) C# Tokyo コミュニティ管理メンバー GitHub: https://github.com/m-ishizaki blog: https://rksoftware.hatenablog.com/ 2 / 30

3.

目次 • Microsoft Build 2024 • WinUI3 のダークモード • WPF、WinForms の今 (ダークモード) • でも WinForms って大変でしょう? 3 / 30

4.

お詫び (今朝気が付きました……) core/release-notes/9.0/preview/preview4/wpf.md at main · dotnet/core (github.com) 4 / 30

5.

Microsoft Build 2024 https://build.microsoft.com/en-US/sessions/b946ccb6-bb6b-4641-acc7-b5fadba2881e 5 / 30

6.

新機能 6 / 30

7.

新機能 すごい。本気で WinForms を今後も使っていってもらう 気なんだ……。本気なんだ。 というかダークモード対応してなかったんだ。 (まあ、WPF も対応してないんだけど) 7 / 30

8.

WinUI3 の ダークモード 8 / 30

9.

WinUI アプリの作り方 個別のコンポーネントを追加 プロジェクトテンプレートが増える 9 / 30

10.

今回 WinUI のセッションもいくつかあってうれしかったですよね 何もしていないのにダークモードなった 10 / 30

11.

WPF そして WinForms 常にこれ。ダークモードにならない 11 / 30

12.

WPF、WinForms の 今 12 / 30

13.

WinUI だと WPF では使えない WinForms では使えない 13 / 30

14.

WPF でできること TargetFramework の変更で UISettings クラスが使用可能に バージョン番号に何を書くか 間違えても このメッセージからコピペ 14 / 30

15.

WPF と WinForms でダークモード 色の取り方は同じ セットの仕方だけ異なる (当然の結果です) 15 / 30

16.

テーマ自体は取れない どなたか取り方知っていたら教えてください WinUI WPF および WinForms 16 / 30

17.

戦いの軌跡 レジストリを読んだり Win32 API を呼んだりすればできるがそれは違う (WPF/WinFormsで出来たとは言い難い) 17 / 30

18.

これからは違う たかがダークモード一つ。されどダークモード一つ WinUI だけでなく WinForms もモダンなアプリ作れるようにするからという強いメッ セージが今回の Build 2024 ※ WPF も同じメッセージ https://build.microsoft.com/en-US/sessions/b946ccb6-bb6b-4641-acc7-b5fadba2881e 18 / 30

19.

でも WinForms って 大変でしょう? 19 / 30

20.

目次 • Data Binding • 順に並ぶレイアウト •フォーカスに応じたスタイルの変更 • 画面の分割表示 (1) • 画面の分割表示 (2) 20 / 30

21.

Data Binding https://build.microsoft.com/en-US/sessions/b946ccb6-bb6b-4641-acc7-b5fadba2881e 21 / 30

22.

Data Binding WinForms DataBinding で Bing りください https://rksoftware.hatenablog.com/entry/2022/11/14/080000 22 / 30

23.

順に並ぶレイアウト 縦並び レイアウト FlowLayoutPanel を使う 縦並び レイアウト 横並び レイアウト 横並び レイアウト デザイナでレイアウトするのは大変 >< だったらコードで書こう! 23 / 30

24.

フォーカスに応じたスタイルの変更 キーボードフォーカス のある TextBox を 強調表示 24 / 30

25.

画面の分割表示 (1) SplitContainer を使う 境界線はユーザーが マウスドラッグで移動できる 画面右側全部 Grid 画面サイズが変わっても 右側全部 Grid 25 / 30

26.

DEMO 26 / 30

27.

画面の分割表示 (2) Dock プロパティを使う TextBox が常に左上 画面サイズが変わっても 右側の残りの領域全部 Grid 画面サイズが変わっても Label が常に左下 27 / 30

28.

DEMO 28 / 30

29.

まとめ 29 / 30

30.

まとめ ⚫ WinForms でもモダンなアプリがつくれる ⚫ できないとつらいこと、実は意外とできます ⚫ WinForms を使う機会にもモダンをあきらめない! 30 / 30

31.

ありがとうございました。 【オンライン】Build 後! C# Tokyo イベント 石崎 充良 31 / 30