ScottさんのSilverLightTutorial4

ScottさんによるSilverLightTutorial Stage4
ようやく終わりました。

もう、いったいどれだけ時間かけてるんだ!って感じですね。
ちょっと悲しい。
でも平日は時間がなかなかとれないからしょうがない。

イイワケカコワルイ

ScottGu’ Blog
Silverlight Tutorial Part 4: Using Style Elements to Better Encapsulate Look and Feel
http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-4-using-style-elements-to-better-encapsulate-look-and-feel.aspx

前回、Tutorial3ではいくつかフォローが足りないというか、
書いてないことがあって躓いてしまったわけですが。。。

今度は本当に罠が仕掛けられてました。。。

今回のTutorial4はコントロールに対するスタイルの指定方法ですね。
今まではコントロールのスタイルに関してはPage.xamlに直接書いていたわけですが
これをApp.xamlにApplication.Resourceとして書いておくことで
複数のコントロールに同一のスタイル指定を行う時に楽になる&変更が容易
ってわけで重要な項目です。

Tutorialにはすべての項目に関してはApp.xaml内のスタイル指定方法は
記述していません。とりあえず、Tutorial3にて指定されているプロパティを
のきなみApp.xamlへ移動してみました。

f:id:krote:20080323185645j:image

動きませんでした。
エラーメッセージからするとプロパティに対するSetter指定がいけない?
AutoGeneratedColumnsかな?

コメントを元に調べていくと、どうやらリソース側でGridに対して
AutoGeneratedColumnsプロパティを指定するといけないらしいです。
Page.xaml内で指定する分には当たり前ですが問題ありませんでした。

とりあえず、AutoGeneratedColumnsに対するSetterをコメントアウトして
再度チャレンジしてみると、

f:id:krote:20080323185644j:image

意味不明なエラーが出た。
これはさすがにわからん。
そもそもAG_E_INVALID_ARGUMENTってなんだ。。

調べてみると、カスタムコントロールを使っているときに時々起るみたい。
細かいことまでは確認できてないけど、いくつか報告があった。

このTutorialに限っていってしまうと、GridのShowGridLinesプロパティを
使用した時に発生するようだ。
とりあえず、これはあっても無くても構わないのでコメントアウトした。

この状態でなんとか実行可能になる。
ただし、AutoGeneratedColumnsプロパティ設定を外しているので結果がGridに反映されない。
しょうがないから結局はPage.xamlに直接書くことにした。

これでようやく完成。
Tutorialの誤りや補足事項としては以下のもの。

1.いつの間にかWaterMarkedTextがただのTextBoxになっている
2.GridのAutoGeneratedColumnsプロパティはPage.xamlで設定する
3.GridのShowGridLinesプロパティはApp.xamlではだめ。

たぶんこれくらい。もしかするとほかにもあったかもしれない。

ネット上の話を見ていると、もしかすると頑張れば今回エラーだったプロパティも
App.xaml内で設定できるのかもしれない。

それにしてもまだベータ技術だからしょうがないんだが、
チュートリアルがそのままではだめだとは。。。。
なかなか敷居がきっついのぅ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください