WPF

コンピュータ

ApplicationCommands クラスの使い方を確認する

ApplicationCommandsクラスではアプリケーションでよく使われる、「ファイルを開く」や「保存する」など、標準的なコマンドを提供します。プロパティの型はRoutedUICommandでICommandの実装です。ICommand...
コンピュータ

.NET 10 SDKとVSCodeで作る軽量C#開発環境 ― 個人開発向けミニマム構成 ―

.NET10 SDKとvscodeを使ってC#の開発環境を構築する手順の記事です。Scoopのインストールscoopはユーザー権限でアプリケーションをコンソールからインストールするパッケージマネージャです。PowerShell(管理者不要)...
コンピュータ

WPFのGridにD&Dでファイルをドロップするサンプルコード

比較的頻繁に使うコードで、ヘルパーとしてライブラリ化までしていますが、少しバージョンアップします。扱うイベントをDropを直接扱うと、GridにListViewなどのD&Dを扱うコントロールで、イベントを奪われたり、奪ってしまう現象が発生し...
スポンサーリンク
コンピュータ

WPF拡張手法の使い分けを整理する― CustomControl / UserControl / Behavior / Helper の違い ―

WPFでは、UIの振る舞いを拡張する方法が数多く用意されています。 カスタムコントロール ユーザーコントロール ビヘイビア アタッチドプロパティ static ヘルパーしかし実際の開発では、「どれを使うのが正解なのか分からない」という場面に...
コンピュータ

C#でTCPソケットを使った画像処理ワーカーを作る

GIMPのPython-Fuから、外部のワーカープロセスで画像のフィルター処理を行う仕組みを試しました。ワーカープロセスが起動している必要がありますが、起動処理もクライアントコードに組み込むことが出来ないか検証してみました。前回の記事ソース...
コンピュータ

Adornerを使いWPFのコントロールを拡大縮小・移動・回転するデモ

WPF における Adorner は、既存のコントロールの上に重ねて表示される特別な要素で、視覚的な装飾やインタラクティブな「操作ハンドル」を付与するために使われます。Adorner は通常の UI レイアウトとは別の AdornerLay...
コンピュータ

WPFアプリでuser.configを使い設定を保存するデモ

アプリの個々の設定を記録する仕組みを試してみました。ソースコードファイル名:AppSettingsSample.csproj<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputT...
コンピュータ

クラスの定義を変えずにプロパティを追加したい?ConditionalWeakTable でスマートに解決

WPF のコントロールを拡張する Helper のコードを書いていて、状態を管理するプロパティが一つでもあるだけで、出来ることが格段に増えると感じる場面があります。思いつく方法としては、FrameworkElement.Tag プロパティが...
コンピュータ

WPFのタブコントロールでViewを分割・切り替える方法

WPFのViewはXAMLで作ることが多く、1画面に多くのコントロールを配置すると、XAMLファイルが肥大化しがちです。対策としてUserControlに切り出す方法がありますが、今回の記事では、複数のUserControlをTabCont...
コンピュータ

WPFのXAMLを使った「クリックするとスプライン曲線が引かれるデモプログラム」

マウスカーソルの座標の取得とスプライン曲線を引く方法を確認しましたので、マウスクリックで曲線を引くデモプログラムを作成します。ソースコードファイル名:ClickSplineDemo.csproj<Project Sdk="Microsoft...
コンピュータ

WPFのXAMLでベジェ曲線とCatmull-Romスプライン曲線

XAMLはベクター図形を描くことが出来るので、今回は曲線を引いて見たいと思います。ベジェ曲線のサンプルMainWindow.xaml(XAMLのみ)<Window x:Class="BezierDemo1.MainWindow" xmlns...
コンピュータ

WPFのCanvas上のマスカーソルの座標を取得する

・コードビハインドでMouseMoveイベントを使えば、マウス座標が取得出来るはず。using System.Windows;namespace MouseEventSample;public partial class MainWindo...
コンピュータ

WPFでデータベースを更新するサンプルアプリ【CRUD,MVVM】

入力フォームからデータベースの更新をするアプリの雛形として、CRUD(Create,Read,Update,Delate)を行うサンプルコードを作成してみました。データベースはLiteDBを使用しています。ソースコードファイル名:CrudS...
コンピュータ

WPFのINotifyPropertyChangedとICommandを使ったバインディングの概要

データをバインディングをする場合バインディングソースとなるオブジェクトはINotifyPropertyChangedの実装である必要があります。また、コマンドをバインディングする場合、ICommandを実装する必要となります。この記事ではI...