Karakuri.com

ベンチャー企業で働くソフトウェアエンジニアの技術録

WPF

WPFと.Net FrameworkでPasswordBoxを簡単に自分で作ってみる

WPFに標準で用意されているPasswordBoxはWinForms時代のものなので機能が貧弱です。一番イケてないのはPasswordBoxに入力したパスワードをViewModelにBindingできないこと。実際にはEventTriggerなどを使えばBindingできることはできるのですが、MVVMパター…

WPFのTextBoxがソフトウェアキーボードと被ってしまわないようにXAMLだけで自動で最上位に移動させてみる

TextBoxがソフトウェアキーボードと被ると入力ができなくなってしまうので、ソフトウェアキーボードが表示されたら自動でTextBoxは画面の最上位に移動して欲しいケースはタッチパネルPC向けのアプリケーション開発では必ず出てくるかと思います。ただこの自…

ViewBoxの中に設置したWrapPanelを親の親であるScrollViewerの横幅でレスポンシブルにさせる

XAMLのViewBoxを使うとViewのズームやズームアウトを導入することができます。このScrollViewerの中にViewBoxを配置し、更にViewBoxの中にWrapPanelを配置したときにWrapPanelをWindowやPageのサイズに合わせて機能させる方法について書き残します。 問題の…

XAMLのBindingが途中で動かなくなる現象の原因を調べてみました

XAMLにBindingしていたプロパティが、あるタイミング以降に変更が反映されなくなる現象に遭遇しました。原因はBindingしているプロパティに値を直接代入するコードが実行されていたためでした。 問題の現象の詳細 問題のコード <TextBlock Text="{Binding Message}" Name="Message"/> XamlでViewModelのプロパティ</textblock>…

はてなブログのフォトライフにアップロードした画像を一括ダウンロードするWPFアプリケーションをC#で開発しました

はてなブログにはブログのバックアップサービスがありますが、残念ながら画像ファイルのバックアップはできません。アップロードした画像はフォトライフというサービスで管理されているのですが、ブログと違うサービスのせいなのか、連動してバックアップを…

WPFアプリケーションでグラフチャートを導入する方法(WindowsFormHostとSparrow Toolkit)

WindowFormにはグラフ描画ライブラリが標準で用意されているのですが、WPFアプリケーションにはそのようなライブラリは用意されていません。今回はWindowsFormのチャートコントロールと、ググって見つけたSparrow Toolkitというチャートライブラリを使用して…

WPFのXAMLのListViewのマウスオーバーや行選択時のハイライトを無効にする

WPFのListViewを使ってリッチなカスタムリストを作成したとき、クリックしたときに背景色が変わるのを解除したくなります。せっかく綺麗なデザインにしたのにクリックした瞬間に選択色がついて台無しに。しかし残念ながらListViewのプロパティ1つをFalseにす…

WPFアプリケーションを多言語対応する方法のまとめ

WPFアプリケーション開発において多言語対応というのは悩みの種です。Androidはstrings.xmlでテキストは管理され、各国語のstrings.xmlを作成すればOSが使い分けてくれるのですが、WPFにもそんな便利機能はあるのでしょうか。 1. LocBamlツールを使った方法 …