1

これをどのように開始すればよいかよくわかりませんが、直接のアドバイスを使用できると確信しています (たとえそれが不可能であっても)。

ページでホストされている 3 つのコントロールがあります。そのうちの 2 つにはStoryboard、コントロールがロードされたときに実行される があります。そのうちの1つはそうではありません。しかし、私は後で追加されるより多くのコントロールを持っているので、そのうちのいくつかはありStoryboard、いくつかはそうではありません (それらは動的であるため、事前に知る方法はありません....まあ、それは長いです話)。

だから私がやりたいのはホストページからです。コントロールに「Storyboard sb」のフィールドがあるかどうかを確認し、そうであればそれにフックして、コントロールで終了したときにホストページが何かを行うようにします。

System.Reflection をかなり調べましたが、ヘルプ ファイルの適切な場所にいると思いますが、どこをどのように見ればよいかわかりません。) コントロールにこのフィールドがあるかどうかを確認します。 b) その場合は「Completed」イベントにフックし、c) 次にハンドラーを削除します。

アドバイス/指示はありますか?

4

2 に答える 2

1

代わりに Dependency プロパティを使用します (この場合は、Storyboard タイプの Dependency プロパティ)。

DP を使用すると、値について何も知らないオブジェクトに任意の値を割り当てることができます。Xaml で割り当てることも、コードから動的に追加することもできます。また、反射よりも高速です。

DP を生成するための便利なスニペット: Silverlight 依存関係プロパティ スニペット(生成されたコードに小さなタイプミスがあり、大文字と小文字が間違っています。スニペットを修正する必要があります)

于 2012-05-18T08:02:41.887 に答える
0

別の比較的簡単な方法は、コントロールのTagプロパティを「悪用」して、ストーリーボードを使用する必要があるかどうかを示すことです。私は (控えめに言っても) この種のシナリオのファンではありませんが、それは単純で十分に速い (そして汚い ;)) ため、内省を避けることができます。

于 2012-05-10T06:58:20.500 に答える