かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

WPF

WPFでWindowが閉じられたときにViewModelの後始末メソッドを呼ぶ

そういう動きをするビヘイビアを作ればOKです。こんな感じで。 public class ViewModelCleanupBehavior : Behavior<Window> { protected override void OnAttached() { base.OnAttached(); this.AssociatedObject.Closed += this.WindowClosed; } private void Windo</window>…

WPFからUWPのAPIを使ってBLEの操作をしよう

WPF

さて、UWPのAPIを使えるということで先日アドバタイズパケットの受信をやりました。 blog.okazuki.jp 今度はBLEの通信をしてみたいと思います。 参考ページは以下。 blog.fenrir-inc.com そして、今回使うセンサーはSensorTagのv1です。 www.tij.co.jp Windo…

WPFでBLEのアドバタイズパケットを拾ってみよう

WPF

UWPのAPIを使ってできるかやってみます。 まず、WpfBleSampleAppという名前でWPFアプリケーションを作成してNuGetからUwpDesktopをインストールします。こいつは、UWPを使うために必要な設定をやってくれる便利な奴です。 次に、以下の記事を参考にアドバタ…

WPFのBehaviorをStyleで使う方法

昔書いた記事にコメントがついたので改めてやってみました。 blog.okazuki.jp 最近はGitHubがあるのでコードを共有するのが楽でいいですね。 こんなクラスを用意してやります。BehaviorをCloneして追加してやる感じです。Cloneして渡さないと同じBehaviorの…

Prism.WpfでPopupWindowActionで表示した要素の中でRegionManagerを使った画面遷移がしたい

というサンプルをGitHubにあげました。 github.com 結構RegionBehaviorを使ったりBehaviorを使ったり頑張ってます。 ここら辺が現実的な妥協点かもしれませんと思います。

WPFでPrismをライトウェイトに使いたい「Hello world」

WPF版Prismは使いこなすと強力です。でも使いこなすの大変です。ハイ。学習コストかけてられないし、学習コストかけたからといって1個のアプリ開発で、そのコストを回収できるかもわかりませんですしね。 ということで、なるべくライトにPrismを使ってみたい…

Prism.Wpfで子WindowでRegionを使う方法

アップデート もうちょっと頑張ったサンプルをGitHubに公開しました。 github.com 古い内容 PopupWindowActionで表示するWindow内で画面遷移したい!とかいうことがあると使えないんですよね。ということで解決策として、RegionManagerを新しく作って、それ…

WPFでTextBoxに入力エラーがないときだけ押せるボタンを実現したい

1つ前でVMでやるのがおすすめですよって書いたけどどうやるの?っていう記事です。 blog.okazuki.jp 今回はReactivePropertyの組み込みのエラーチェック機能を使ってやってみます。まず。intしか受け付けないValidationAttributeを作ります。 using System.C…

WPFでTextBoxに入力エラーがないときだけ押せるボタンをXAMLで実現したい

WPFでint型をバインドしたTextBoxとかって入力エラーがあると赤色枠がついていい感じにしてくれますよね。ただしViewModelからは、そのエラーは検知できない。 でも、ボタンは押せないようにしたい。そんなときは、こんなXAMLで実現できます。

Metro.cs#2 WPFからみるMVVM で WPFから他プラットフォームへの展開というテーマで話してきました #metrocs

doc.co 資料を公開しておきます。今回からSlideShareじゃなくてdocs.comにしてみました。 Modelをしっかり作ろうぜ!っていうことでちょびっと話してきました。 試行錯誤した結果なので、これが正しいかはわからないですが…。まぁ一例ということで。

Prism.WpfのApp.configによるModuleCatalogの構成の仕方をPrism自習用リポジトリに追加しました

Prism Template Packを使うと簡単にApp.configによるModuleCatalogの構成ができるということで、今まで書いてなかったそこの部分についてPrism自習用リポジトリに追記しました。 github.com

Windows FormsからWPFやUWPに来て戸惑うこと

Buttonに文字を設定するのにTextじゃないということ。 Contentプロパティに設定しないといけないというやつですね。 ふむふむ、コンテンツね…って覚えたらTextBlockはTextプロパティなのかよ!という理不尽な扱いを受けてしまいます。 これの見分け方なんで…

WPFのDataGridの左上を押しても全選択したくない

WPF

というときどうするか。ControlTemplateをいじりましょう(完 WPFのいいところはControlTemplateで、完全にコントロールの見た目をカスタマイズする余地が残されてるという点ですが、WPFのプロパティの範囲でできないカスタマイズとかが出てきたらControlTem…

Prism.Wpfのプロジェクトテンプレート

WPF

PrismのWPFとXamarin.Forms(こっちはまだPreview)には、プロジェクトテンプレートが提供されています。 拡張機能でPrismで検索すると、Prism Template Packというものがヒットします。 こいつをインストールすると、Prism.Unityを使ったプロジェクトテンプ…

WPFでListBoxで要素が表示されてるか確認してみる

WPF

最適解じゃなさそうだけどこんな感じで…。

WPFでメインウィンドウ閉じたらアプリが終了するようにする

WPF

ApplicationのShutdownModeをOnMainWindowCloseに変更すればOKです。 <Application ... ShutdownMode="OnMainWindowClose"> ... </Application>

WPF4.5入門のKindle版をアップデートしました

WPF

www.amazon.co.jp 図がずれたり、図中の日本語が文字化けしていたのを、全て画像化したので文字化け等が無くなりました。 因みに、上記のKindleで売ってるものは、SlideShareからPDF形式のものはダウンロード出来ます。通常はそちらを読んで頂いて買ってもい…

WPFのDataGridにstringの2次元配列をバインドしたい

WPF

小ネタです。WPF(に限らずですが)のBindingは、配列の要素にインデックスでアクセスが可能です。 なので、以下のようなBinding式を書くことで、配列を表示することが出来ます。

WPFのGridSplitterで*でサイズ指定してるときにサイズの保存と復元をする方法

WPF

このお題で2個より多い時って言われて悩んだ結果です。 blog.okazuki.jp サイズを*で指定すれば、GridSplitterは画面のサイズを超えてリサイズされないという特性をもちます。これでOK。じゃぁあとは保存と復元をどうやるかですが、こんな感じでいけます。 p…

WPFのGridSplitterでピクセル指定の時に画面外までサイズ変更できなくする

WPF

という方法です。 ColumnDefinitionのMaxWidthを指定してやれば実現できました。こんな感じのConverterを用意しておきます。 using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using Sy…

FriendlyでFrameを使ったアプリをテストする その2

blog.okazuki.jp 1つ前の記事でWPFContentControlなるものをこさえてまでやった方法ですが、Friendly作者の石川さんに聞いたらさくっともっといい方法を教えてもらえました。 AppVar型にもLogicalTreeメソッドはあるのじゃよ 個人的にWPFContentControlを作…

FriendlyでFrameを使ったアプリをテストする

追記 blog.okazuki.jp この記事の内容より良い方法がありましたので上の記事に書いてます。 あと、この記事に書いたWPFContentControl足してもらえたみたいです。 元記事 という要望がありました。 WindowControlのLogicalTreeで辿ればいいや!って思ってた…

ReactiveProperty + Prism.Wpfでリストに表示されてる項目を編集するサンプルを書いてみた

github.com ListBoxに表示されてる項目を選択してボタンを押すとポップアップが出てきて編集するっていう簡単なサンプルです。

RxとReactivePropertyを使って、WPFでUnidirection Data Flowを実現するを真似してみた

ありがたいことに最近ReactivePropertyを勧めたら使い始めて頂けました。 qiita.com このコードを大げさに書いたらどうなるかなぁというのでやってみました。 ということでModel部分。 なんかきっかけがあるタイミングで、インクリメントし続けるだけの奴。 …

WPF 4.5入門をKindleに公開しました

SlideShareで無料で公開してるPDFをKindleで1205円で公開を始めました。 www.amazon.co.jp Kindleでどうしても読みたいという方や、これくらいなら払ってやってもいいかという人はぽちってくれると純粋に私が喜びます。 SlideShareのほうは、引き続き公開し…

Prism 6.0のRegionBehaviorについて書きました

github.com

PrismのModuleの読み込み順序の制御なんかについて書きました

github.com Moduleのオンデマンド読み込みや、Moduleの依存関係の定義方法なんかを書きました。

EventAggregatorについて書きました

github.com Prism自習用のリポジトリにEventAggregatorについて書きました。

Prismのナビゲーションについて書きました

github.com

InteractionRequestについて書きました

github.com ユーザーとの対話操作を実現するためのInteractionRequestについてPrismの自習用リポジトリにサンプルとともに解説を上げました。