コンピュータ

C# Reflectionで派生クラスを自動登録する(Plugin型アーキテクチャ)

クラスを定義するだけで勝手に使われるPluginのような振る舞いのサンプルコードを作成しました。abstract class BaseClass(){ abstract public void Apply();}class DerivedC...
コンピュータ

dotnet newで自分用WPF MVVMテンプレートを作る

WPFアプリを何度も作っていると、毎回同じファイルを用意したくなります。 例えば、MainWindowViewModel.cs、RelayCommand.cs、 そしてMainWindow.xamlのDataContext設定などです。 こ...
コンピュータ

WPFヘルパー:FreeDraw.cs – Canvas上にフリーハンドで線を引くヘルパー(Attached Property)

FreeDraw.csusing System.Runtime.CompilerServices;using System.Windows;using System.Windows.Controls;using System.Windows...
スポンサーリンク
コンピュータ

WPFのCanvasにフリーハンドでPathの線を引くサンプルコード(コードビハインド)

Canvas上でマウスでお絵描きが出来ないか試作。MainWindow.xaml.csusing System.Windows;using System.Windows.Input;using System.Windows.Media;us...
コンピュータ

C#のnamespaceで名前を分ける理由

C#では、クラスや構造体などの型をまとめるためにnamespace(名前空間)という仕組みがあります。通常はアプリケーションごとにnamespaceを決めて、そこにクラスを配置します。namespace MyApplication{ cla...
コンピュータ

WPFのコードビハインドとデータバインディングの関係

WPFではUIを構築する方法として、コードビハインドによるイベントドリブンとデータバインディングという2つの考え方があります。この2つは対立するものではなく、役割が異なる仕組みです。また、どちらか一方だけでもアプリケーションを作成することは...
コンピュータ

WPFレイアウトまとめ(基本事項)

WPFのレイアウトは「自動レイアウト」が前提です。固定サイズ指定で組むよりも、親コンテナ(Panel)に配置ルールを持たせて組み立てる方が破綻しにくく、拡張もしやすいです。1. コントロールは基本的に親の領域いっぱいに広がるWPFのコントロ...
コンピュータ

WPFよく使うコントロール一覧

レイアウト系 Grid 行・列でレイアウトする。WPFで最頻出。 StackPanel 縦 or 横に順番に並べる。 DockPanel 上下左右に寄せて配置する(最後の子を残り領域にすることも可能)。 Canvas 絶対座標で配置する(図...
コンピュータ

WPFのAttachedPropertyでコマンドをバインディングするサンプルプログラム

やっていることは、クリックしたマウスの座標をMessageBoxで表示するだけです。コードビハインドでは、XAML側でCanvasにx:Nameを付けて、Clickイベントに対応するメソッドを記述するだけなので、ほんの数行のコードで済みます...
コンピュータ

C#でnamespace(名前空間)にエイリアス(別名)を付けることで名前の衝突を避ける。

OpenCVSharpを使っていて、RectやPointなどのクラスの名前がWPFなどの既存のクラス名と被ることがあります。namespaceのエイリアスを定義することで回避出来るとのことですので調べてみました。基本的な書き方using S...
コンピュータ

WPFヘルパー: SelectionCropper.cs – 矩形選択

SelectionCropper.cs// 矩形選択using System.Windows;using System.Windows.Controls;using System.Windows.Input;using System.Win...
コンピュータ

C#からTesseract OCRを扱うサンプルコード

NuGet パッケージ追加dotnet add package Tesseracttessdata の取得GitHubのリポジトリjpn.traineddatajpn_vert.traineddataを ./tessdata フォルダに配置...
コンピュータ

WPFヘルパー:Gd.cs – GirdのColumnDefinitionsとRowDefinitionsの定義を短くするヘルパー

Gd.cs// GirdのColumnDefinitionsとRowDefinitionsの定義を短くするヘルパーusing System.Windows;using System.Windows.Controls;namespace Ma...
コンピュータ

WPFヘルパー:FileDropHelper.cs – ファイルDropをサポートするための Attached Property を提供するクラス

FileDropHelper.cs// ファイルDropをサポートするための Attached Property を提供するクラスusing System;using System.Linq;using System.Windows;usi...