WP7

ListBoxとStackPanel

WP7

WP7のListBoxが大量のデータを処理する際にパーフォーマンスに問題が出ることはかなり前から指摘されているが、それをStackPanelで代用することで改善する例が掲載されている。(2010/09/08のエントリ) Never do today what you can put off till tomorrow [D…

Mandarine-wp7 更新

Mandarine-wp7 - MVVM library framework for Windows Phone 7先日のエントリで採りあげたApplicationBarItemのコマンドバインド対応分などをコミット-プッシュしました。(11/25) 以下のクラスを追加 AppBarItemType AppBarExtensions AppBarItemBehavior Ap…

アクセサリー選びは楽し

GALAXY NexusとNokia Lumia 800を購入する予定なので、アクセサリーを選ぶ(といってもケースだけだが) GALAXY Nexus Case-Mate Samsung GALAXY NEXUS Hybrid Tough Case, Black / Black シリコンゴムと樹脂のハイブリッドタイプ。ゴムが内在するために衝撃吸…

AppBarUtils

ApplicationBar自体はBlend4でデザイン支援を受けることができる標準のクラスを使用する ApplicationBarButton、ApplicationBarMenuItemも同様 上記アイテムのClickイベントに対応するトリガ、コマンドを用意する この方針で実装することにしたのだが、参考…

ジレンマ

Windows Phone 7標準のApplicationBarの弱点を補完するための別な実装をいろいろと調べていたが、残念なことに満足に使えるものは見つからなかった。 ApplicationBarの実装自体は先日紹介したPhone7.Fxを初めいくつかあるのだが、やはり PhonePage.Applicati…

BindableApplicationBar (Phone7.Fx)

Phone7.FxのBindableApplicationBarだが、残念ながら使えなかった。 まず第一に、XAML上、PhoneApplicationPage#ApplicationBarプロパティにセットできないということ。※もう一つは、他のコンテナ(Grid)上に配置しても何故か私の環境では表示できないという…

Phone7.Fx

Windows Phone 7のApplication BarはVisual Studioが用意するテンプレートに最初からサンプルコードとして埋め込まれており、コメントを外すことですぐに使える。用意されたApplicationBarにチェックとキャンセルのアイコンを配置した例(Blend 4) ただ、この…

mandarine-wp7更新

mandarine-wp7- Google Code以下更新しました。 ViewModelGenerate.tt, Util.tt 必要なusingキーワードを生成元クラスから取得して生成する処理を追加。 生成するViewModelのプロパティにusingが必要な型を指定できなかった不具合?を解消。 上記に伴い、全体…

Nokia Lumia 800

wp7

Nokia Lumia 800 - Nokia - UKアジアのメーカ、HTCやSAMSUNGの端末を長く使っているとこのNokia Lumia 800のようなデザインが格好良く見えて来る。 写真にもあるシアンカラーのモデルが抜群に格好よく見えるのだが、色もさることながら面と面との接合部分や…

Mandarine-wp7

これまでの日記でWindows Phone 7に関して書いてきたコード片を全てGoogle Codeにアップすることにした。Mandarine-wp7 - library framework for Windows Phone 7 | Google Code Hosting"Mandarine"というプロジェクト名はWindows Phone 7.5のコードネームが…

ローテーション可能なIsolatedStorageTargetを書く

やることはこのFileTargetクラスからログのアーカイブとローテーションの機能を抜き出してIsolatedStorageTargetクラスにポートすることである。 ということで早速やってみた。ただし、FileTargetのアーカイブ/ローテーション機能をIsolatedStorageTargetに…

NLogで例外とスタックトレースをログに採取する

NLog – Advanced .NET Logging NLogにも大分慣れてきた。設定ファイル(NLog.config)もかなり考えられており、内部のパーサと拡張構文(${〜})によるプロパティの設定も柔軟性がある。 例えばログターゲット(Target)のレイアウトプロパティだがフォーマット文…

IsolatedStorageTargetでログローテーションする

前回までのエントリでIsolatedStorageにログを出力できるようにはなったが、単一のファイルをログを出力し続けるとサイズがどんどんと膨らんでいくことになるので、なんらかのログのアーカイブ戦略を立てなくてはならない。 ログのアーカイブとローテーショ…

NLog Target Extension(その4)

次回ではNLogを使って実際にログを出力してみよう。 using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication()) { using (Stream stream = new IsolatedStorageFileStream("Mandarine.log" , FileMode.Append, FileAccess.Writ…

NLog Target Extension(その3)

NLog.config <nlog> <extensions> <add assembly="Mandarine"/> </extensions> <targets> <target name="target1" type="IsolatedStorage" layout="${longdate} ${callsite} ${level} ${message}"/> </targets> <rules> <logger name="*" minlevel="Debug" writeTo="target1" /> </rules> </nlog> #if !WINDOWS_PHONE strin…

NLog Target Extension(その2)

ソースコードを調べたたのだが(やっぱりソースコードが無いとね)、Windows Phoneでは要素の要素 assembly属性には対応していないようだ。 無念。 NLog.Config.XmlLoggingConfiguration.cs #if !WINDOWS_PHONE : string assemblyName = addElement.GetOptiona…

NLog Target Extension

NLogのTargetをIsolatedStorageFileにしたくて調べていたのだが、中々上手く行かん。 他のアセンブリからターゲットクラスを呼び出す時点でエラーが出てしまう。 NLog.config <nlog> <extensions> <add assembly="Mandarine"/> </extensions> <targets> </targets></nlog>

NLog

Androidで言うところのLogCatと同じようにアプリケーションのログを採取したいがWindows Phoneにはそのようなものは無いようだ。 ASP.NETやWindowsFormsではLog4Netを使用していたが、Log4Netはちょっと重めなのでもう少し軽くて簡単に使えるロガーを探して…

設定画面 その4

あとは必要なイベント発生時にこれらのコマンドを明示的に実行すればOKだ。 次は実際の画面と組合わせて処理を完成させてみよう。 今回は今までの仕上げとして、実際に画面を用意して設定値をロード/セーブしてみよう。 設定画面 動作確認するだけなので、以…

呼び出し側のアプリケーションIDを確定できません。

前のエントリで設定値を保存するコマンドクラスを書いていたが、それをBlend4のInvokeCommandActionビヘイビアでパインドして使おうとしたのだが、Visual Studio 2010では何も問題が無いのにBlend4で以下のエラーが出ることが解った。エラーの発生元がXAMLだ…

設定画面 その3

さて、設定画面の設定値をロード/セーブする処理だが昨日はViewModelに直接組込んで使う例を考えてみた。今日はViewModelには組込まず、コマンドとして実装することを考えてみよう。まずはIsolatedStorageSettingsのIO処理を組込んだコマンドクラスを作ろう…

設定画面 その2

とシンプルな構成。あとはAppSettingsクラスを好きな画面のコントロールにデータバインドするだけと簡単だ。 殆どがルーティーンなので、これも他のコード同様にもう少しスマートに書けないかを考えてみよう。 ということで考えて見たが、すぐに出てくるのは…

設定画面

環境や各種諸元値のオプションを設定する画面はモバイルアプリケーションでよく使われる。なのでAndroidプラットホームなどはそのための専用のActivityクラスであるPreferenceActivityを提供しており、データの永続先として使用するXMLと共に使うことで簡単…

ToggleSwitch.Contentのローカライズ

提供されているリソースを上書きしてデータテンプレートを使ってかなり面倒なことをやるのかな、と思ったのだが存外簡単だった。 ローカライズ用のリソースを用意する 状態二値である"On"と"Off"をキーに持つリソースを用意する。取り敢えずインバリアントと…

ToggleSwitch

WindowsPhone7の実機を見た後にVisualStudioで実際の画面を作ろうとしたときに不満なのは、あるコントロールが無いことだ。 ToggleSwitch 動作的には元々あるToggleButtonやOn/Offだけを表現するのであればCheckBoxで十分のようにも思うのだが、プラットホー…