読者です 読者をやめる 読者になる 読者になる

AttachedProperty定義の記述量削減

下記記事にて、依存プロパティの定義の記述量を削減しました。 DependencyProperty定義の記述量削減 - 何でもプログラミング今回は同様に、添付プロパティの記述量を削減してみたいと思います。素のままでは下記のような記述になり、エディタ上で"propa"とタ…

LINQ独自オペレータ メモ

C#

C#のIEnumerableには、SelectやAggregateなど様々なオペレータが用意されています。本記事では、あったら便利な独自のオペレータを定義してメモしたいと思います。随時更新予定です。 ForEach なんだかんだで、やっぱりあると便利です。 public static void …

T4でImmutableクラスコンストラクタ作成(C#)

T4 C#

C#(7.0)でImmutableクラスを作成する際、下記のような記述が必要になります。 public class Person { public string Name { get; } public int Age { get; } public Person(string name, int age) { Name = name; Age = age; } } F#のレコードと異なり、コ…

DependencyProperty定義の記述量削減

独自のDependencyPropertyを定義する際、コールバックも含めると下記のような記述になります。 public static readonly DependencyProperty ValueProperty = DependencyProperty.Register("Value", typeof(int), typeof(Counter), new PropertyMetadata(0, (…

WPFでマウスドラッグイベント

WPFにはデフォルトでドラッグのイベントは用意されていません。今回はドラッグ用のイベントを実装してみたいと思います。記事内で利用しているObservableクラス、Disposeクラス、Subscribe関数は下記記事を参照してください。 C# eventをIObservableに変換 -…

C# eventをIObservableに変換

C#

eventからIObservableへの変換は、下記のRxのFromEvent関数にて行えます。 NuGet Gallery | Reactive Extensions (Rx) - Main Library 3.1.1今回は、Rxを導入するほどでもないとき用に、シンプルなものを自前で実装してみたいと思います。 Observer、Observa…

WPFとDirect3D11の連携 --- テクスチャ貼り付け

下記記事にて三角形を描画するところまで記述しました。 WPFとDirect3D11の連携 --- 三角形描画 - 何でもプログラミング今回はテクスチャを貼り付けて表示してみたいと思います。 Texture作成 Direct3D9側でD3DFMT_A8R8G8B8にてレンダリングターゲットを作成…

WPFとDirect3D11の連携 --- 三角形描画

下記記事にてWPFとDirect3D11を連携してサーフェスを表示しました。 WPFとDirect3D11の連携 --- 導入 - 何でもプログラミング今回は単純な三角形を描画してWPFで表示してみたいと思います。 Shader作成(csoから) csoデータが存在する場合は、下記関数のみ…

WPFとDirect3D11の連携 --- 導入

下記記事にてWPFとDirect3D9Exを連携する方法を記述しました。 WPFとDirect3D9Exの連携 --- 導入 - 何でもプログラミング最近ではDirect3D11の利用がメジャーになっていますので、今回はWPFとDirect3D11を連携させてみたいと思います。WPF自体はDirect3D9で…

WPFとDirect3D9Exの連携 --- テクスチャ貼り付け

下記記事にて三角形を描画するところまで実装しました。 WPFとDirect3D9Exの連携 --- 三角形描画 - 何でもプログラミング今回はさらにテクスチャを貼り付けを実装してみたいと思います。本記事で利用している、CreateVertexShader、CreatePixelShader、Creat…

WPFとDirect3D9Exの連携 --- 三角形描画

下記記事にてIDirect3DSurface9をWPFで表示しました。 WPFとDirect3D9Exの連携 --- 導入 - 何でもプログラミング今回は単純な三角形を描画してWPFで表示してみたいと思います。本記事で利用しているAssertHR、CliComPtr、CreateDevice、CreateRenderTargetに…

WPFとDirect3D9Exの連携 --- 導入

WPFにDirect3Dのレンダリング結果を貼り付けたい場合、D3DImageクラスが利用できます。CPU経由でBitmapSourceを作成するのに比べ、D3DImageはGPU内で完結するため、より効率的です。今回はD3DImageを利用するところまでを実装したいと思います。 C++/CLI用Co…

WPFにおけるMVVM

作成するアプリケーション 簡単なカウンタアプリケーションをもとに説明していきます。 C#のWPFアプリケーションプロジェクトを想定しています。 従来方式での実装 ボタンに登録されたコールバック内にてcountを増減し、テキストにcountを設定する、といった…