Visual Studio で GUI アプリを作るのに使える WPF についての覚書です。
ページ遷移の方法
NavigationWindow を使えば良い。
ViewModel のプロパティを変更したときに、画面の表示内容が変更されるようにする方法
ViewModel で INotifyPropertyChanged インターフェースを実装すれば良い。
参考:
バックグラウンドで処理を実行する方法
BackgroundWorker を使えば良い。
参考:
- BackgroundWorker クラス (System.ComponentModel)
- Dispatcher を使用して応答性の高いアプリケーションを構築する
- バックグラウンド操作をキャンセルする _ HIRO's.NET Blog
タイマーで一定時間後に処理を実行する方法
DispatcherTimer を使えば良い。
フルスクリーン表示する方法
MainWindow.xaml で Window タグに以下の属性値を設定すれば良い。
WindowState="Maximized" WindowStyle="None" Topmost="True"
Ruby の map や inject の様な処理をする方法
それぞれ Select, Aggregate を使えば良い。
例)文字列の各バイトの排他的論理和の計算
Encoding.ASCII.GetBytes(str).Aggregate(0, (a, b) => a ^ b);
起動時に、前回終了時のウィンドウ配置を復元する方法
以下の通りにすれば良い。
次のようにコードを整備しておくと使い回し可能で便利!
WPF でウィンドウ位置とサイズを保存・復元しよう | grabacr.nét
コードビハインドから名前を指定してコントロールオブジェクトを取得する方法
FindName メソッドを使えば良い。
拡張メソッド
拡張メソッドを使用すると、新規の派生型の作成、再コンパイル、または元の型の変更を行うことなく既存の型にメソッドを "追加" できます。
参考
- 連載:WPF入門 - @IT
- MVVMパターンの常識 ― 「M」「V」「VM」の役割とは? - @IT
- 同期処理の基礎
- .NET開発における非同期処理の基礎と歴史 - @IT
- WPF での図形と基本描画の概要
- アプリケーション管理の概要
- チュートリアル : XAML を使用したボタンの作成
- Binding.RelativeSource の使い方
- 匿名型
- Page.KeepAlive プロパティ
- .NET Framework の正規表現 | MSDN
- 正規表現での文字クラス | MSDN
[amazon asin="4798114200" /]