2019-10-25に投稿

WPFって何なんだぜ☆(^~^)?

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 WPFって何なんだぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 知らね☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 Visual Studio 2019 でソリューションを作ってみれば何か分かるんじゃない?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 WPF アプリ プロジェクト を選んでみるかだぜ☆」

20191023wpf1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 さて どうしたものか……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 ウィジェットを置いて、イベント・ハンドラーを書くこと以外のことができたら びっくり だよな☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 テキストのファイル読込と、書込みを試しに作ってみましょう」

20191023wpf2b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑何がなんだか分からん☆ 適当に選んで置くか……☆」

20191023wpf3.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑こういうウィジェットは 比率を指定したりして 敷き詰めて置けるもんなんだが、操作が分からん……☆」

20191023wpf4b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑マウスで引っ張ったら 隅っこに くっついた気がするぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 次は ファイル・チューザーを開くボタンを置いてくれだぜ☆」

20191023wpf5b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑どこをいじったら 何があるのか 勘だぜ☆」

20191023wpf6b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑なんか いじっていれば イベントハンドラへ飛べるだろ……☆」

20191023wpf7b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ほら 飛んだ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 頼りないわねぇ」

20191023wpf8.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑それよりお前ら、ファイル・チューザーが無いぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ググりなさい」

ファイル選択ダイアログとフォルダ選択ダイアログ

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 NuGet で ↑ WindowsAPICodePack をインストールしろとのことだぜ☆ 作者は Aybe ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 WindowsAPICodePack-CoreWindowsAPICodePack-Shell があるが分かんね、両方入れよ☆」

using Microsoft.WindowsAPICodePack.Dialogs;

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑Microsoft の ダイアログを using するぜ☆」

            var dialog = new CommonOpenFileDialog
            {
                Title = "Title",
                // フォルダ選択ダイアログの場合は true
                IsFolderPicker = false,
                // ダイアログが表示されたときの初期ディレクトリを指定
                InitialDirectory = "適当なパス",

                // ユーザーが最近したアイテムの一覧を表示するかどうか
                AddToMostRecentlyUsedList = false,
                // ユーザーがフォルダやライブラリなどのファイルシステム以外の項目を選択できるようにするかどうか
                AllowNonFileSystemItems = false,
                // 最近使用されたフォルダが利用不可能な場合にデフォルトとして使用されるフォルダとパスを設定する
                DefaultDirectory = "適当なパス",
                // 存在するファイルのみ許可するかどうか
                EnsureFileExists = true,
                // 存在するパスのみ許可するかどうか
                EnsurePathExists = true,
                // 読み取り専用ファイルを許可するかどうか
                EnsureReadOnly = false,
                // 有効なファイル名のみ許可するかどうか(ファイル名を検証するかどうか)
                EnsureValidNames = true,
                // 複数選択を許可するかどうか
                Multiselect = false,
                // PC やネットワークなどの場所を表示するかどうか
                ShowPlacesList = true
            };

            if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
            {

            }

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑パクったコードを貼り付けようぜ☆?」

20191023wpf9.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑おー、ファイル・チューザー出てくるぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 このアプリは .exe ファイル形式なのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 bin フォルダーの中を探せば何か入ってるだろ……☆」

20191023wpf10b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑おなじみの構成だぜ☆(^~^)」

20191023wpf11.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ .exe ファイルをダブルクリックしたら アプリが起動した☆
もう WPF だけでいいんじゃないか☆? Windows Forms は禁止な☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 何か制限があって あれできない、これできない とか ないの?」

KIFUWARABE_80x100x8_01_Futu.gif
「 早よ挫折して寝ろだぜ☆ すいすい進んだら読者がつまらん☆」

20191023wpf12b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ .NET Core で やりたかったんだが、これ .NET Framework だよな☆?」

Visual Studio 2019で始める「WPF on .NET Core 3.0」開発 というタイトルで登壇してきました

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑長ったらしい記事だぜ☆ .NET Core 3.0 って どこで手に入るんだぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 [ツール] - [ツールと機能を取得] から探せだぜ☆」

20191023wpf13b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑これでは☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 だから 知らね☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 押すんだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 リボ付けますか?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 リボはもう要らね☆」

20191023wpf14b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑これでは☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 おんなじこと できるのかしら?
周辺のライブラリが対応してないとか、よくあることなのよ」

20191023wpf15.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑おんなじようなものがでてきた……☆
周辺の連中が どれぐらい新しい物好きかだな☆ 日本の老人は腰を抜かす準備をしておいてほしい☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 お父んも 老人の方に近いんだがな☆」

20191023wpf16.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑よし、出たでた☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 じゃあ .NET Framework は捨てて .NET Core に引っ越しましょう」

20191023wpf17b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ .NET Core 3.0 になってるな☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 でも 日本系企業に .NET Core 3.0 入れられないだろ☆
なぜ 入れる必要があるのか 理由を書けだぜ☆ そこに意見があろうと無かろうと 返答はこうだぜ☆
それは .NET Framework でも できないのですか☆(^~^)? 」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ふてくされて寝てよ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 必要なんか無いのよ。プログラマーなんか コストでしかないのだから。
会社は 無料で使える従業員が欲しいの。 求められているのは プログラミングおたく ではなく 言うことを聞くプログラマーよ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 会社もまた 星の数ほどある☆
大企業ではないところに行けだぜ☆」

20191023wpf18b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ウィジェットの名前って 手打ちしないといけないのかだぜ☆?」

            if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
            {
                var contents = File.ReadAllText(dialog.FileName);
                richTextBox.AppendText(contents);
            }

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑よく分からん☆ こんな感じで打って 動かしてみようぜ☆?」

20191023wpf19.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑テキストは読み込めたぜ☆ 改行が余分に付いているのは よく分からんが……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 リッチ・テキスト・ボックスなんか使うからだぜ☆ ふつうのテキスト・ボックスにしろだぜ☆」

RichTextBox Overview

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 エラーがあるところに 赤い波線引いたり、背景色塗りたいときあるだろ☆ そして編集できる☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 使い方 むずかしいんじゃないの、1記事書けるぐらいに」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 今度調べるテーマ決まったよな☆ リッチ・テキスト・ボックス をやろうぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 リボ↓、付けますか↑?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 リボは もう要らね☆」

<書きかけ>

ツイッターでシェア
みんなに共有、忘れないようにメモ

むずでょ

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

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

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

有料記事を販売できるようになりました!

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

コメント