2021-09-18に更新

WPFでUserControlの練習をしようぜ(^~^)?

ぱぴょー(^~^) ぽんぷー(^~^) 公開下書き

前の話し

📖 WPFって何だぜ(^~^)?

今回の話し

ramen-tabero-futsu2.png
「 WPFで UserControl を作る練習をしようぜ?」

kifuwarabe-futsu.png
「 Window や Page を作れるやつは UserControl も作れる。 だいたい同じだぜ」

ohkina-hiyoko-futsu2.png
「 UserControl が複数の UserControl を持っていて またその UserControl が複数の UserControl を持っていて……、
とか やるんでなければ ほとんど Window と同じよね」

20210918wpf112a1.png

ramen-tabero-futsu2.png
「 👆 この記事の読者は わたしの他の記事を読んで Livetのインストールとか ページ遷移とか さくさく作れるスキルレベルと想定するぜ。
ソリューション エクスプローラーから フォルダーを右クリックして [追加] - [ユーザーコントロール] をクリックしろだぜ」

20210918wpf114.png

ramen-tabero-futsu2.png
「 👆 Window も UserControl も、ちょっと違うけど やることは似てるだろ」

kifuwarabe-futsu.png
「 UserControl ならではの利点があるんだろ?」

20210918wpf115a1.png

ramen-tabero-futsu2.png
「 👆 まあ、 [ビルド] - [ソリューションのビルド] をクリックしろだぜ」

20210918wpf116a1.png

ramen-tabero-futsu2.png
「 👆 じゃあ ツールボックスに入ってるぜ。
あとは ボタンを置くのと同じように ユーザー コントロールを デザイナー画面で置けるな」

ボタンのルックスを変えようぜ?

ohkina-hiyoko-futsu2.png
「 世間には Windows の四角いボタン憎し! で ルックスを全部変えたい仕事って あるのよ。
まず Windows の雰囲気を この地上から絶命させたいの。 Windows のルックスは この青い星の上で 生きていてはいけないのよ」

ramen-tabero-futsu2.png
「 そんなときは コントロール テンプレート だぜ」

20210918wpf117a1.png

ramen-tabero-futsu2.png
「 👆 Button.Template に ControlTemplate を入れてやれだぜ。
ボタンの形を 楕円にしたったぜ」

kifuwarabe-futsu.png
「 マウスカーソルを重ねた時に 光る働きも 消えてしまったな」

20210918wpf118a1.png

ramen-tabero-futsu2.png
「 👆 楕円の色を決め打ちしてると 使いたい側が 色を変えれないので、
TemplateBinding を使って ButtonのBackgroundプロパティを 引っ張ってこようぜ」

ボタンが押されたときのルックスを変えようぜ?

20210918wpf119a1.png

ramen-tabero-futsu2.png
「 👆 ボタンが押されたときに 楕円を黄色に変える方法だぜ」

ohkina-hiyoko-futsu2.png
「 ボタンのトリガーって どんなものがあるの? どこに一覧がまとまってるの?」

ramen-tabero-futsu2.png
「 知らね」

📖 WPF Trigger Properties
📖 Trigger.Property Property
kifuwarabe-futsu.png
「 👆 なんで一覧が無いんだろうな?」

20210918wpf120a1.png

ramen-tabero-futsu2.png
「 👆 IsMouseOver というのもあるみたいだな。
IsPressed より先に定義しておかないと 利かない?」

kifuwarabe-futsu.png
「 色だけでなく ボタンのルックスを もっと大胆に 変えれないのかだぜ?
楕円を止めて 四角になるとか」

ramen-tabero-futsu2.png
「 調べても出てこないなあ」

Brush とか Rectangle はコントロールではない

20210918wpf121.png

ohkina-hiyoko-futsu2.png
「 👆 あらっ、 Rectangle には Template プロパティが無いの?」

ramen-tabero-futsu2.png
「 Rectangle は コントロールではないんで」

何度でもクリック!→

むずでょ

光速のアカウント凍結されちゃったんで……。ゲームプログラムを独習中なんだぜ☆電王戦IIに出た棋士もコンピューターもみんな好きだぜ☆▲(パソコン将棋)WCSC29一次予選36位、SDT5予選42位▲(パソコン囲碁)AI竜星戦予選16位

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

むずでょ の最近の記事