現在、複数の子 (CHILD) ユーザー コントロールを含むことができる WPF ユーザー コントロール (PARENT) を作成しています。(CHILD) コントロールをポリラインで接続しています。
これを行うには、CHILD ユーザー コントロールの場所が必要です。ただし、VisualTreeHelper.GetOffset から取得した場所はゼロです。コントロールの OnLoaded イベント ハンドラーにコードを配置すると、子コントロールの正しい場所が取得されるため、WPF はおそらく、CHILD コントロールのサイズ変更とメモリへの配置をまだ完了していません。
親コントロールをロードした後でも、子コントロールを追加して行を更新できるようにしたいので、これは問題です。
私が現在これを解決した方法は、CHILD コントロールの OnRender をオーバーライドし、MAIN コントロールのイベントを発生させて、VisualTreeHelper を使用して正しい値を取得できることを認識させることです。
ただし、これは、最後の CHILD コントロールのレンダリングが完了するまで、線を再描画する必要があることを意味します。
私の現在の解決策は、解決策というよりも回避策のように感じます。VisualTreeHelper から正確な結果を得るために、WPF rendercycle にどのように「プラグイン」できますか?