2011-07-11 15 views
3

コントロールテンプレートが定義されており、これをmyValという名前で検証します。これはValidation.ErrorTemplateが に設定されているスタイルターゲティングのテキストボックスなどで使用されますWPF - ビューの遷移後にadornerが元の位置にとどまる

このようなテキストボックスがビュー内に多数あり、これがTranslateTransformとBeginAnimationを使用してスライドするとします。

結果として、ErrorTemplateで使用されるadornerは、ビューが遷移するときにテキストボックスの位置に従わず、代わりに開始位置に留まります。しかし、アドオンは、マウスの移動などのフォーカスやイベントを設定するとすぐに、テキストボックスとの関連で正しく位置を変更します。

フォーカスを変更することなく、変換後にアドフォナーを正しい位置に表示させるにはどうすればよいですか?遷移後まで検証を遅らせる方法はありますか?またはアニメーションが終了したらプロパティを「再検証」する方法はありますか?私はinvalidatevisualを呼び出すことについてどこかを読んだが、どうやってそれをやるのか分からない。どんな助けも大歓迎です。

乾杯

答えて

3

つのアイデア:

テキストボックスの周りAdornerDecoratorを追加してみてください、またはテキストボックスのグループの周り。これは、WPFに、アドレンダーをレンダリングするための別のレイヤーを追加するように指示します。テキストボックスに「近く」のレイヤーを追加すると役立ちます。

あなたは再レンダリング自体にadorner層を伝えたい場合は、次のコードのようなものを使用することができます

var al = AdornerLayer.GetAdornerLayer(myTextBox); 
al.Update(); 
+0

こんにちはネイサンを、感謝お返事のおかげで、。私は、テキストボックスの周りにAdornerDecoratorをラップしようとしましたが、実際にはコンボボックスの周りで実際に試しましたが、テキストボックスと同じで、運がないと思います。飾り手はまだ元の位置に表示されます。それは、私が細かく見て、それが本当に問題を解決したことを認識するまで書いていたものです(私は、項目がいっぱいで、変更したものを見つけることができませんでした)。ただ、明確にするために、このソリューションは美しく機能します。あなたのすべての助けをありがとうネイサン! – c95mbq

+0

恐ろしい!それが働いたことを聞いてうれしい! – NathanAW

関連する問題