WP7
WP7のListBoxが大量のデータを処理する際にパーフォーマンスに問題が出ることはかなり前から指摘されているが、それをStackPanelで代用することで改善する例が掲載されている。(2010/09/08のエントリ) Never do today what you can put off till tomorrow [D…
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 シリコンゴムと樹脂のハイブリッドタイプ。ゴムが内在するために衝撃吸…
ApplicationBar自体はBlend4でデザイン支援を受けることができる標準のクラスを使用する ApplicationBarButton、ApplicationBarMenuItemも同様 上記アイテムのClickイベントに対応するトリガ、コマンドを用意する この方針で実装することにしたのだが、参考…
Windows Phone 7標準のApplicationBarの弱点を補完するための別な実装をいろいろと調べていたが、残念なことに満足に使えるものは見つからなかった。 ApplicationBarの実装自体は先日紹介したPhone7.Fxを初めいくつかあるのだが、やはり PhonePage.Applicati…
Phone7.FxのBindableApplicationBarだが、残念ながら使えなかった。 まず第一に、XAML上、PhoneApplicationPage#ApplicationBarプロパティにセットできないということ。※もう一つは、他のコンテナ(Grid)上に配置しても何故か私の環境では表示できないという…
Windows Phone 7のApplication BarはVisual Studioが用意するテンプレートに最初からサンプルコードとして埋め込まれており、コメントを外すことですぐに使える。用意されたApplicationBarにチェックとキャンセルのアイコンを配置した例(Blend 4) ただ、この…
mandarine-wp7- Google Code以下更新しました。 ViewModelGenerate.tt, Util.tt 必要なusingキーワードを生成元クラスから取得して生成する処理を追加。 生成するViewModelのプロパティにusingが必要な型を指定できなかった不具合?を解消。 上記に伴い、全体…
Nokia Lumia 800 - Nokia - UKアジアのメーカ、HTCやSAMSUNGの端末を長く使っているとこのNokia Lumia 800のようなデザインが格好良く見えて来る。 写真にもあるシアンカラーのモデルが抜群に格好よく見えるのだが、色もさることながら面と面との接合部分や…
これまでの日記でWindows Phone 7に関して書いてきたコード片を全てGoogle Codeにアップすることにした。Mandarine-wp7 - library framework for Windows Phone 7 | Google Code Hosting"Mandarine"というプロジェクト名はWindows Phone 7.5のコードネームが…
やることはこのFileTargetクラスからログのアーカイブとローテーションの機能を抜き出してIsolatedStorageTargetクラスにポートすることである。 ということで早速やってみた。ただし、FileTargetのアーカイブ/ローテーション機能をIsolatedStorageTargetに…
NLog – Advanced .NET Logging NLogにも大分慣れてきた。設定ファイル(NLog.config)もかなり考えられており、内部のパーサと拡張構文(${〜})によるプロパティの設定も柔軟性がある。 例えばログターゲット(Target)のレイアウトプロパティだがフォーマット文…
前回までのエントリでIsolatedStorageにログを出力できるようにはなったが、単一のファイルをログを出力し続けるとサイズがどんどんと膨らんでいくことになるので、なんらかのログのアーカイブ戦略を立てなくてはならない。 ログのアーカイブとローテーショ…
次回ではNLogを使って実際にログを出力してみよう。 using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication()) { using (Stream stream = new IsolatedStorageFileStream("Mandarine.log" , FileMode.Append, FileAccess.Writ…
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…
ソースコードを調べたたのだが(やっぱりソースコードが無いとね)、Windows Phoneでは要素の要素 assembly属性には対応していないようだ。 無念。 NLog.Config.XmlLoggingConfiguration.cs #if !WINDOWS_PHONE : string assemblyName = addElement.GetOptiona…
NLogのTargetをIsolatedStorageFileにしたくて調べていたのだが、中々上手く行かん。 他のアセンブリからターゲットクラスを呼び出す時点でエラーが出てしまう。 NLog.config <nlog> <extensions> <add assembly="Mandarine"/> </extensions> <targets> </targets></nlog>
Androidで言うところのLogCatと同じようにアプリケーションのログを採取したいがWindows Phoneにはそのようなものは無いようだ。 ASP.NETやWindowsFormsではLog4Netを使用していたが、Log4Netはちょっと重めなのでもう少し軽くて簡単に使えるロガーを探して…
あとは必要なイベント発生時にこれらのコマンドを明示的に実行すればOKだ。 次は実際の画面と組合わせて処理を完成させてみよう。 今回は今までの仕上げとして、実際に画面を用意して設定値をロード/セーブしてみよう。 設定画面 動作確認するだけなので、以…
前のエントリで設定値を保存するコマンドクラスを書いていたが、それをBlend4のInvokeCommandActionビヘイビアでパインドして使おうとしたのだが、Visual Studio 2010では何も問題が無いのにBlend4で以下のエラーが出ることが解った。エラーの発生元がXAMLだ…
さて、設定画面の設定値をロード/セーブする処理だが昨日はViewModelに直接組込んで使う例を考えてみた。今日はViewModelには組込まず、コマンドとして実装することを考えてみよう。まずはIsolatedStorageSettingsのIO処理を組込んだコマンドクラスを作ろう…
とシンプルな構成。あとはAppSettingsクラスを好きな画面のコントロールにデータバインドするだけと簡単だ。 殆どがルーティーンなので、これも他のコード同様にもう少しスマートに書けないかを考えてみよう。 ということで考えて見たが、すぐに出てくるのは…
環境や各種諸元値のオプションを設定する画面はモバイルアプリケーションでよく使われる。なのでAndroidプラットホームなどはそのための専用のActivityクラスであるPreferenceActivityを提供しており、データの永続先として使用するXMLと共に使うことで簡単…
提供されているリソースを上書きしてデータテンプレートを使ってかなり面倒なことをやるのかな、と思ったのだが存外簡単だった。 ローカライズ用のリソースを用意する 状態二値である"On"と"Off"をキーに持つリソースを用意する。取り敢えずインバリアントと…
WindowsPhone7の実機を見た後にVisualStudioで実際の画面を作ろうとしたときに不満なのは、あるコントロールが無いことだ。 ToggleSwitch 動作的には元々あるToggleButtonやOn/Offだけを表現するのであればCheckBoxで十分のようにも思うのだが、プラットホー…