Silverlight error 4008

スポンサーリンク

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

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

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

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

 

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

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

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

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

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

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

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

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

 

 

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

 

 

コメント