スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: スポンサー広告

WPF4で開発を始めるなら(弐)

WPF4で開発を始めるなら、というか、仕事で使ってる現在の共通ライブラリをベースに、まず画面起動まで行ってみようと思った時に揃えたものの一覧が↓になる。

○共通系(WPF非依存)
・基本なクラス
Disposableな基底クラス
Disposeできた方がなんとなく安心できてしまうという…。実際、いつガベコレしてくれるかわからないので、Disposeしておかないと、ワーキングセットがバンバン増え、そして一向に減らない気がする。

・ローカライズ化関係。WPFには関係のない部分。
多言語化、或いはローカライズ(壱)
多言語化、或いはローカライズ(弐)
多言語化、或いはローカライズ(参)
多言語化、或いはローカライズ(四)
Windows8以降のアプリ、特にWindows Storeに登録しようと思うなら、日本語以外も用意する必要があったりする。個人的なアプリ、日本語だけで良いなら、これらは要らない。

・ユーティリティなクラス
クラスはシンプルが良い(Utility編)
基本、staticクラスにstaticなメソッド。拡張メソッドも付ける。staticな変数は基本readonlyで。一つの目的だけを一つのメソッドにしたシンプルな物を目指したい。
続きを読む
スポンサーサイト
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: WPF4 | コメント: 0 | トラックバック: 0

WPF4で開発を始めるなら(壱)

 うちの部署の中でも、業務内容によってチーム(課)が分かれている。最近別のチームに移った後輩にある話を聞いた。

こっちのチーム、WPFを敬遠して、Windows Formsが良いわ~って話になってるっす。

へぇー。WPFよりWindows Formが良いと。敬遠される理由としては、

  • 長年Windwos Formsで開発してきている。
  • なので、Windows Formsで開発した方が速い。
  • XAMLの書き方が一定していない。人によって異なる。
  • MVVMの実装がめんどい。コードビハインドで良いじゃん。
などなど。まあ、しょうが無いよな~と納得できる話ではある。まあ、ぶっちゃけ、こっちに干渉しなければどうでも良い話ではある。何で開発しようと、ユーザーの要件を満たせられるなら問題ないし。自分的には、WPF4の方が開発しやすいけどなぁと、今なら思える。そう、今ならね。
続きを読む
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: WPF4 | コメント: 0 | トラックバック: 0

新しいUIはどうにも抵抗感がある。

Windows8.1の使い勝手をXPに限りなく近づけるソフト『Back to XP for 8』
 こんな記事を見かけると、「おおっ」とか思ってしまう自分は、随分年を取ったんだなとか思ってしまう。
 Windows8以降のスタートメニューがないの仕様は非常にめんどくさい。どこで探せばいいのかがよくわからない。
Windows95あたりからWindows7に至るまで存在した「スタート」メニュー。まさにWindowsを始めるとき、最初に使うところで、ユーザーさんにも説明がしやすかった。だから思う。「なぜなくしたんだ!」と。だから、自分がWindows8で開発することになったとき、この記事にあるツールを自分はインストールするだろう。
 でも、すべてのユーザーさんがそれをインストールする訳ではないので、やはり新しいインターフェイスに慣れる必要がある。
・どこに何の機能があるか。どうすれば見つけられるか。
・どういう使い方があるか。
色々把握しないと、説明はできない。
 ああでも、この「MSの思惑(新UI)なんて知らねー」みたいなツールは魅力的に見えてしまうなぁ…。うちの上司(Windows8使用中)に言ってみよっと。
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: Windows | コメント: 0 | トラックバック: 0

可変引数なActionとかFuncとか

 C#2.0以降で、ActionやFuncというメソッドをカプセル化するデリゲートが標準で提供され、C#3.0以降にサポートされたラムダ式で更に使うようになった。で、ジェネリックタイプのAction<>でサポートされている引数の数は、最大で14個。まあ、これを超える引数を使うなんて事はそうそうない。でも、例えば、同じ型のインスタンスを任意の数で引数にしたい。そう、可変長引数的な使い方はできないものか?とちょっと思った。
 そもそも、そういう需要はあるのか?とか思うんだけども。一応そういう時が来る時の為の備忘録としてメモっておく。
※オリジナルではなく、以下の書籍で見つけた内容。

C#クックブック 第3版C#クックブック 第3版
(2008/08/25)
Jay Hilyard、Stephen Teilhet 他

商品詳細を見る

続きを読む
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: C# | コメント: 0 | トラックバック: 0

TextBoxフォーカス時における挙動を変えたいと思った。(参)

 TextBoxフォーカス時における挙動を変えたいと思った。(壱)で作った添付プロパティを実際の画面で使う事になった。
 業務で使うような画面では、数値や文字列を修正する時(特に数値系)、一々バックスペースやデリートキーを押したくない。というか、元の文字列を消し忘れる事で、明らかに入力ミスの割合が高くなる。なので、フォーカスがあたった時は、テキスト全選択状態にしてほしい、という要望があったからだ。早速使う事にしたんだけど、同じプロジェクトの後輩から指摘を受けた。

後輩:マウスでフォーカス当てた時に動かないっすよ。
自分:えー(↑)。現行の画面はどうなの?
後輩:ちゃんと動くっすよ。ほら。
自分:ほんとだOrz。


よくよく考えたら、画面を使うユーザーは、マウス操作がメインだった。以前に関わったプロジェクトの対象ユーザーはキーボード操作メインだったので、勘違いしてた。ちなみに、キーボードメインのユーザーは、一日にすごい量の伝票入力をこなしている。マウスなんて触ってる時間が惜しいといわんばかりの操作っぷりらしい。
で、探した所、いいのがあった。
How to SelectAll in TextBox when TextBox gets focus by mouse click?
おお。そのままだ。
public static class TextBoxBehavior {

/// <summary>
/// BehavoirOnGotFocusProperty変更イベントハンドラ
/// </summary>
/// <param name="dpObj">イベント発生元</param>
/// <param name="e">イベントデータ</param>
private static void OnBehavoirOnGotFocusPropertyChanged(
DependencyObject dpObj, DependencyPropertyChangedEventArgs e) {
var txtBox = dpObj as TextBox;

if (txtBox == null) {
//TextBox系以外は受け付けません。
return;
}

txtBox.PreviewMouseLeftButtonDown -=
new MouseButtonEventHandler(TxtBox_PreviewMouseLeftButtonDown);

if (e.NewValue != null && ((BehaviorOnFocus)e.NewValue) != BehaviorOnFocus.None) {
txtBox.PreviewMouseLeftButtonDown +=
new MouseButtonEventHandler(TxtBox_PreviewMouseLeftButtonDown);
}

return;
}

/// <summary>
/// マウス左ボタン 押下前イベント用メソッド
/// </summary>
/// <param name="sender">イベントソース</param>
/// <param name="e">イベントデータ</param>
private static void TxtBox_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
var textBox = sender as TextBox;

System.Diagnostics.Debug.Assert(textBox != null);
var behavior = TextBoxBehavior.GetBehavoirOnGotFocus(textBox);

if (behavior != BehaviorOnGotFocus.None &&
!textBox.IsKeyboardFocusWithin) {
e.Handled = true;
textBox.Focus();
return;
}

return;
}
}
これでマウスによるフォーカスでも期待通りに動く、はず。
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: WPF4 | コメント: 0 | トラックバック: 0

サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。