エイプリルフール始まりました

ネタページの入り口がわかりません(;_;) > アイレム様

— posted by mu at 08:25 am   commentComment [0]  pingTrackBack [0]

桜撮影

blog20130324-CherryBlossom

帰国すれば、桜はちょうど満開。例年より2週間くらい早い。天気がぱっとしなかったのと、フィリピンで崩れた体調も完全には回復してなかったため、今回は近場で済ませました。

タイトル:花札。札の方は鳥はうぐいすだし、花は梅だけど(^_^)

— posted by mu at 10:00 pm   commentComment [0]  pingTrackBack [0]

 

帰国

blog20130323-CellarPhoneBag

昨日帰国。フィリピン滞在中に体調を崩してしまい、きつい出張となってしまった。

さて、通常私は出張時には個人用2台(国内と海外)、会社支給の1台の計3台の携帯電話を持って行きます。私が海外用携帯にDual SIMにこだわるのは、個人用国内のSIMをこちらに移し、国内用携帯をホテルのセーフティボックスに入れっぱなしにするため。会社支給のも会社への国際電話用なのでもっぱら使うのは1台。

普段空港ではこれらを無造作にカバンに入れて出国検査を受けていたのですが、今回成田ではいやに検査が厳しくなりX線の所でこれら携帯を全部出すはめに。更に今回スマホを購入したLink ので写真のバッグをフィリピンのダイソー(saizen)で購入、フィリピン出国時にまとめてカバンから出せるようにと準備万端。

が、蓋を開けてみればフィリピンの出国検査が甘くなっていて、いつもなら靴を脱いでベルトまで外さないといけなかったX線もあっさり通過。う~ん、拍子抜け。

日本に着いてから購入した携帯を税関に申告したところ、「海外で携帯を買ったのですか?」って聞かれた。ニュアンス的にはそんな物買えるのか、海外で買ってどうするんだという感じ。そんなに珍しい話かな? あ、申告する奴が珍しいのか (^_^;)

— posted by mu at 08:51 pm   commentComment [0]  pingTrackBack [0]

WPF: StoryboardにBinding

DoubleAnimationとかでFrom, To, Durationなどを状況に応じて変更させるためにこれらにBindingを設定したいという状況は少なくないと思うのですが、ControlTemplate.TriggersやStyle.Triggers内で定義すると実行時に”Cannot freeze this Storyboard timeline tree for use across threads”なるメッセージの例外が出ます。

どうもはっきり理解できていないのですが、理由は以下のどちらかかな?
  • Animationやっている最中にFrom, To, Duration値が変えられると困る。なので少なくともStoryboard開始前にはこの値を固定(Freeze)する必要がある。値を動的に変えることが目的のBindingはこれに反する。
  • TemplateやStyleは使いまわされることが前提なので、事前(多分Exe実行初期)にXamlをコンパイルしてパフォーマンスを改善している。よってコンパイル後値が変わる要因となるBindingは認められない。

ここの例Link はStoryboardをリソース指定、開始をコードビハインドでやることで、うまく回避できているということでしょうか。Animation開始後にウィンドウサイズを変えてもボールの動きが追従しないので、Animation中は値が変えられないということがわかります。

コードビハインドで取得したリソースはDynamicResourceに相当するLink らしいので、Storyboardをリソースで指定してDynamicResourceで参照すればと試したのですが、少なくともControlTemplateではうまく行かず。

[参考]

[2013/3/18 追記] 結局プロパティの変化を捕まえて、毎回コードビハインドでStoryboardから作る方法で逃げた

Storyboard LastStoryboard;
double from, to;

void BeginHeightAnimation()
{
    if (LastStoryboard != null) LastStoryboard.Stop();

    ControlTemplate template = (ControlTemplate)GetValue(TemplateProperty);
    FrameworkElement target = (FrameworkElement)template.FindName("Target", this);
    DoubleAnimation dblAnim = new DoubleAnimation(from, to, new Duration(TimeSpan.FromMilliseconds(200)));
    Storyboard sb = new Storyboard();
    sb.Children.Add(dblAnim);
    Storyboard.SetTarget(dblAnim, target);
    Storyboard.SetTargetProperty(dblAnim, new PropertyPath(FrameworkElement.HeightProperty));

    sb.Begin();

    LastStoryboard = sb;
}

— posted by mu at 12:31 pm  

メモリ壊れた

blog20130315-BrokenSODIMM

やけにFirefoxが落ちたりBSoDが出るなと思ったら、メモリが壊れていた。何も海外で壊れなくてもと思ったけど、出張か帰省中にしか活躍しないノートだからそりゃ海外で壊れるか。

Knoppixが起動するUSBメモリとか、2枚入れてあったメモリカードとか、普段なら「無駄に良い」と言われそうな準備が役に立ち、特に困った事態にはならずに済みそう。

— posted by mu at 06:53 pm  

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0134 sec.
prev
2026.3
next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31