WinForms

コンピュータ

C#のWinFormsでINotifyPropertyChangedを使ってコントロールとデータバインディングしてみる。

WPFでINotifyPropertyChangedを使ってみたことがありました。 その後にもっと便利なReactiveProperyを知ったため、長らく忘れていました。 正直MVVMなWPFは小規模なプログラミングだと面倒を感じ、WinF...
コンピュータ

ファイルをバイト配列に読み込む実験「FileStream.ReadとParallel.For」

SSDに保存されたファイルサイズが216MBのPNG形式画像ファイルがありまして、これをWinFormsのPictureBoxで表示するプログラムを書きます。 // パターン0 using FileStream fs = new(fileN...
コンピュータ

C#のWinFormsでSystem.DrawingとMagick.NETとOpenCVSharpでPNGファイルのデコード速度を比較

手作りのソフトなので計測なので精度は今一つですが、System.Drawingが一番速い結果になりました。 System.Drawing:22ms Magick.NET:39ms OpenCVSharp:33ms Windows環境で実行し...
コンピュータ

C#のWinFormsでファイルマネージャを作る3。「サムネイル表示の高速化」

ListViewの動作が遅い原因を探ってみたところ、オーナードローでの描画にサムネイル画像の用意が間に合っていないことが原因でした。 VirtualModeで表示部分だけの描画される動作も、そもそも描画の準備が間に合っていないためスクロール...
コンピュータ

C#のWinFormsでToolStripなToggleButtonのサンプル

スライドスイッチみたいな見た目を想像しましたが、押しボタンタイプの見た目です。 ソースコード namespace ToolStripToggleButtonSample1; public partial class Form1 : Form...
コンピュータ

C#のWinFormsでファイルマネージャを作る2。「大きいサムネイル」

前回作成した内容で使ってみたのですが、目的が画像や動画の選択ですので、ファイルの一覧で画像の内容が目視出来たほうが良いことに気が付きました。 ついでにGIMPの.xcfやPhothoShopの.psd及び動画の.aviや.mp4などの内容も...
コンピュータ

C#のWinFormsでファイルマネージャを作る。「試作編」

少しずつ調べていた機能がだいぶ溜まったので、以前から作ろうと思っていたファイルマネージャ(劣化版エクスプローラー)を作成したいと思います。 アプリケーションのファイルの一覧からGIMPなどの画像加工のアプリケーションに画像ファイルをドラッグ...
コンピュータ

C#のWinFormsでリストビューを試す。「アイテムにアイコンを表示」

カレントディレクトリのファイルの一覧をリストビューで表示するプログラムを作成しました。 リストビューのアイテムがファイルの場合とディレクトリの場合で別のアイコンが表示されるようになっています。 namespace ListViewSampl...
コンピュータ

C#のWinFormsでコンボボックスのイベントを確認する2。「バリデーション」

コンボボックスはプルダウンメニューの様な選択肢を選択する機能と文字を入力するテキストボックスのような機能が複合されたコントロールです。選択と入力で保持する値が別の方法で変更される可能性があり、イベントの処理を考えると思考を放棄したくなります...
コンピュータ

C#のWinFormsで絵文字を描くサンプル。「フォルダを描く」

System.Drawing.GrapihcsのDrawStringメソッドを使うと画像に文字書くことが出来ます。 その際フォントを指定することになりますが、絵文字を持っているフォントを指定し、描きたい絵文字を文字コードに指定すると、絵文字...
コンピュータ

C#のWinFormsでファイルのアイコンを取得するサンプル

C#でエクスプローラーのようなファイルマネージャを作ろうと思い、ファイル表示されているアイコンの取得する方法を調べてみました。 namespace FileIcon; public partial class Form1 : Form { ...
コンピュータ

C#ツリービューを試す2「ノードを検索して展開する」

以前ツリービューでフォルダ構造を表現するサンプルを作成しました。エクスプローラーの左側のような動作をするように作成しましたが、機能的に外部から指定のフォルダーに移動する機能も必要では?と思い試作してみました。 namespace TreeS...
コンピュータ

C#リストビューで画像ファイルのサムネイル表示5「サムネイルをzipファイルに保存」

前回作成したプログラムで、サムネイル用の縮小画像を毎回作成するとレスポンスが悪くなるので、一度生成した縮小画像をファイルとして保存し、2回目以降はそれを読み出すようなキャッシュルーチンを組み込んでいました。保存した縮小画像のファイルは不可視...
コンピュータ

C#のWinFormsでMagick.NETを使ってGIMPのXCFファイルを読み込む

ImageMagickはいろいろな画像フォーマットに対応した画像ライブラリ?です。そちらを.Netに対応させたパッケージがNuGetに有りましたので、GIMPのXCFファイルを読み込むサンプルを作成してみました。 プロジェクトの作成 dot...