2010年8月のエントリ

楽譜表示のUI部分が完成。だいぶWPFに詳しくなった気がする。あとは楽譜表示に戻って8vaとか未実装な部分を実装すればとりあえずは完成か。


てことでWPF関連。プロジェクトを.NET 3.5ベースにしているとうまくいかないけど.NET 4.0ベースにしたらうまくいったケースがあったのでメモ。.NET 4.0はWindows 7デフォルトで入っていないが,Windows Updateに重要な更新で出てくるし,大丈夫でしょう。


1つ目。CheckBoxにbool型のプロパティをtwoway Bindingしている状況で,ある条件のときはsetterで何もせずに返すようなコードを書いた。チェック操作をしたけどチェックできませんでした,みたいなことをしたいのである。

XAML
<CheckBox IsChecked="{Binding IsDisplay, Mode=twoway}">
C#
 bool IsDisplay
 {
     set
     {
         if(xxx)
         {
             return;
         }
         _isdisplay = value;
         PropertyChanged(this, new PropertyChangedEventArgs("IsDisplay"));
     }
     get
     {
         return _isdisplay;
     }
 }

この状態でチェックボックスをオフからオンに変えようとすると,プロパティはfalseのままなのにUIはtrueになってしまって状態が食い違う感じになってしまう。で結局プロジェクトを.NET 4.0ベースにするとうまくチェックがキャンセルされた。


2つ目。以下のようにListBoxでテキストラベルとそれ以外を配置しているようなケースで,テキストラベルを可変長(Width=”100*”とか)にしている場合,ウィンドウを1度でも広げていれば問題はないのだが,ウィンドウ表示時に画面を狭くしていると,レイアウトが崩れてしまう。

2010082501

2010082502

これも結局プロジェクトを.NET 4.0ベースにするとレイアウトが崩れなくなった。

BS11で3D放送をやっていて普通のモニタで見てみたのだが,画面が左右に分割されていたので裸眼立体視で3Dに見えた。いくつか放送の形式があるらしいのだが,この方式だと普通のモニタで立体に見えますね。水平解像度が半分なのでアスペクト比が崩れて3D具合がきつくなるけど。

掲示板。ログを一度に100しか見られないように制限したので,左上に過去ログとして1000発言ずつアーカイブしたものを置くようにした。トップページのカウンタも少しだけ軽くしておいた。これでCoreファイルができなくなるといいんだけど,無理そう。ウェザタイのランキングもどうにかしないと・・・。


ぱじさんが3日目のストレスでついに・・・。