2014年02月13日

艦これの「同航戦」みたいなエフェクト

艦これで戦闘が始まる前に「同航戦」とか「反航戦」とか一文字ずつ出てくるあれです。

ItemsControlの子要素を順番に表示していくだけです。
こんな感じのコントロールを作成。
(がっつりコード上でアニメーション作っているのでこんな長いソースに・・・)




とりあえずSilverlightで実装しました。
Silverlightが実行できるブラウザなら下に出来上がったものがあるはずです。
「セット」ボタンを押すと設定されるよ。
ItemsControlなのでFrameworkElementなら何でも入ります、ってことで最後に画像をおまけで追加。







Microsoft Silverlight を入手




一応プロジェクトのソースも貼っておきます。
SilverlightApplication1.zip


posted by ぷにお at 16:36 | Comment(0) | Silverlight | このブログの読者になる | 更新情報をチェックする

2014年01月20日

電力使用状況のSilverlightアプリをトップページから削除しました

スマフォからもアクセスがあるッぽいので、Silverlight埋め込みはよくないよね。

もし、ほしいという方がいたらこちらのページから持って行ってください。

作ったのは約3年前ですね。
当時はSilverlightがもっと頑張ってくれると思っていたんですけどね〜。

でも緊急地震速報を教えてくれるOut of Browserアプリはまだ使ってますよ。

まだだ、まだ終わらんよ(ノД`)


posted by ぷにお at 20:12 | Comment(0) | Silverlight | このブログの読者になる | 更新情報をチェックする

2013年04月04日

IValueConverterの罠

すみません、罠ってほど大したもんじゃないです。
今回私が引っかかって悔しかったのでこんなタイトルにしてみました。
それではどんな罠に引っ掛かったかを簡単なサンプルで紹介。
(サンプルはWPFですがXAML+IValueConverterなら何でも同じでしょう、きっと)


csharp.PNG

こちらがC#のコード。(ソースコード貼り付ける方法が分からなかったので画像ですんません)
見づらいかもしれませんが、値とパラメーターを乗算して返すだけです。
Debugで書いているのはパラメーター(object parameter)の型。コメントに書いてあるようにString型です。



xaml.PNG

こちらがXAMLのコード。
Sliderの値を先ほどのコンバーターを使ってProgressBarとTextBlockに入れてます。
ConverterParameterには0.5が入っているので、Sliderの半分の値が出てほしいって感じです。



window.PNG

そして実行結果がこれ。
Sliderの半分の値が出てますね。期待通り♪


ところが、ある状態でこのアプリを起動すると
window2.PNG

半分どころか5倍になってる!
って罠にはまりました。


結論は単純でOSの「地域と言語」の設定が
local.PNG
こんな感じになってたんですね。
見づらいと思いますが、
小数点の記号が ,(カンマ)
桁区切り記号が .(ピリオド)
と、通常と逆になってたんです。

すると、ConverterParameterに0.5と書いてある部分の意味が変わります。0.5じゃなくて5って解釈されちゃうんですね。

こんな設定普通やらねーよ、と思うかもしれませんがそれは国内のみをターゲットにしている場合。
カンマとピリオドが日本と逆の国って結構あるんですよ。
アプリの多言語化を考えている人はお気をつけて。


いらないとは思いますがこのアプリのコードです。WpfApplication1.zip

posted by ぷにお at 18:50 | Comment(0) | Silverlight | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。