Silverlight error 4008

投稿者: | 2009年4月8日

Silverlightの開発中にこんなエラーが出ました。

「Silverlight Runtime error 4008 レイアウト循環参照が発生しましたよん」

いつも思うんですがSilverLightのErrorはどこで発生しているか本当にわからんのですよ。

Runtimeエラーなのでやってはいけないことをやってしまったようです。

 

とりあえず原因探求の長い旅に出ました。

現象としてはScrollViewerのコンテンツにページを入れてScrollViewerにResizeイベントなどをはっつけてですね、ブラウザのResize時に動的なスケーラブルを実現していたのですがResizeを行っているときに例のエラーが起きてしまったのですよ。

色々と試してみたりして解決しましたよ。

原因はScrollViewerの中にScrollViewerを入れてたりしたんですね。

中に入っているScrollViewerに対してリサイズイベントが発生していたので、親のScrollViewerのWidthやHeightに対して干渉を起こし循環参照が発生していたようです。

ただし簡単にはこの現象が起こるわけではないんですよ。

コンテンツの中に入っているページに沢山のコントロールが配置されている時なのですが、コントロール数の区切りがさっぱりわからんです。

参考までに調べたサイトのURLを下記に記しときますよ。

 

http://silverlight.net/forums/t/17939.aspx

 

Beta2で結構出ていた内容のエラーらしいですね。ScrollViewerは困ったちゃんのようです。

 

 

コメントを残す

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

CAPTCHA