WPF

コンピュータ

WPFとは?WinFormsとの違いや将来性について考える

WPFを学んでいくと、最終的には「WPFはビジネスアプリケーションを作るために特化したフレームワーク」という結論にたどり着きます。特化しているということは、裏を返せば汎用性が犠牲になっているということで、実際、自由度の面ではWinForms...
コンピュータ

WPFをWinFormsライクに使う:Grid+GridSplitterで左右ペインを作る

ウインドウ内を左右に2分割し、中央のツマミ(GridSplitter)を左右に操作することで領域を増減させます。ソースコードファイル名:gridSplitterSample.csproj<Project Sdk="Microsoft.NET...
コンピュータ

WPFをWinFormsライクに使う:Windowを作る

WPFでWindowを作る場合、まずwpfのプロジェクトを作り、せっかく生成されたソースファイルを、.csproj以外全て削除します。cd (mkdir "プロジェクト名")dotnet new wpf -f net8.0ls * -Fil...
スポンサーリンク
コンピュータ

XAMLで始めるWPF入門:カスタムコントロールで作るズーム・パン機能付きImageコントロール

マウスホイールで拡大・縮小機能、ドラックで移動機能を付与したImageコントロールを作成しました。カスタムコントロールですので他プログラムで再利用しやすいかと思います。ソースコードファイル名:Controls\ScrollableImage...
コンピュータ

XAMLで始めるWPF入門:カスタムコントロールで作るスクロールバー付きImageコントロール

Imageコントロールで画像サイズが大きい場合、スクロールバー自動有効化されるカスタムコントロールです。ScrollViewerとImageを組み合わせれば比較的簡単に実装出来るのでカスタムコントロールにしてみました。ソースコードファイル名...
コンピュータ

XAMLで始めるWPF入門:アプリの終了時にReactivePropertyをDisposeするコード

ReactivePropertyはWPFのViewModelでバインド可能なプロパティを簡単に生やすことが出来て非常に便利です。ただ、IDisposableなので使用後にDispose()を呼ぶ必要があります。使い方次第ですが、アプリの終了...
コンピュータ

C#のWPFでEXEファイルのアイコンを抽出するコード

WPFでアイコンを扱う場合System.Drawingを使う方法がありますが、今回はWindowsAPIを使う方法を試してみます。サンプルコード動作確認のためにコンソールアプリで、notepad.exeのアイコンを取得しpngファイルとして...
コンピュータ

C#のWPFでアプリケーションアイコンを設定する方法

・icoアイコンファイルの配置例:Assets/App.icoMyApp/ MyApp.csproj Assets/ App.ico・プロジェクトファイル(.csproj)<Project Sdk="Microsoft.NET.Sdk"> ...
コンピュータ

WPFで画像ファイルの寸法(幅、高さ)を高速に取得する。

画像ファイルを表示するために、事前に幅や高さが知りたい場面があります。一般的な方法として画像オブジェクトのWidth(PixelWidth)やHeight(PixelHeight)を参照するとで知ることが出来ます。ただ、その方法の場合、画像...
コンピュータ

WPFをWinFormsライクに使う:コードだけでシンプルなプログラミングスタイル

WPFと聞くと「XAMLでUIを定義してMVVMで組み立てる」というイメージを持つ人が多いと思います。確かにそれは王道ですが、すべての場面で必要とは限りません。実際には、WinFormsのようにコードだけで画面を構築し、シンプルにイベント処...
コンピュータ

肥大化しがちなWPFのXAMLとViewModelをユーザーコントロールを使って分割する方法

WPFでシングルウィンドウアプリケーション(一つのウィンドウだけで完結するアプリ)を作っていると、Viewにコントロールを沢山配置することになり、Viewを構成するXAMLファイルと、データソースとして紐づくViewModelのソースファイ...
コンピュータ

WPFのListViewでListViewItemを編集する方法をさがす

エクスプローラーF2キーでのファイル名が編集が出来るますが、ListViewで同じことができないか試行錯誤しています。プロジェクトの作成ソースコードファイル名:BooleanToVisibilityConverter.csusing Sys...
コンピュータ

C#のWPFでEntity Frameworkを使いSQLiteのDBをCRUD処理するサンプルコード

DBのテーブルを編集するGUIフォームを作成するにあたり必要な情報を集めてコード化してみました。さらにコード量が多くなりそうなので一旦記事にしてみました。プロジェクトの作成dotnet new wpf -n プロジェクト名cd プロジェクト...
コンピュータ

ReactiveCollectionのClearOnSchedulerでTaskCompletionSourceを使いクリア完了を待つコード

WPFのリストビューなどのデータソースとしてReactiveCollectionを使うのですが、一度内容をクリアして再表示するような場合、クリアの終了を待つ必要があります。普通の配列やコレクションであれば、コレクションの要素数をCount(...