プログラムで作成された動的 DataGrid (.NET 4、WPF) があります。そのヘッダー列はサイズ変更可能で移動可能です。さらに、列が移動しているときに移動する必要がある(そして列の中央を正確に指す)いくつかのマークを持つ一種のルーラーコントロールがあります。
私は DataGrid の ColumnReordering および SizeChanged イベントを観察しており、各列の寸法とデータグリッド コントロールの左端に対する開始位置に関する正確な情報を提供したいと考えています。コントロールで特定の列のオフセットを取得する方法はありますか?
以前のすべての列の幅を合計するだけでは十分ではありません。列幅の合計は、コントロールの合計幅よりも小さくなります (現時点では 1px*列数)。おそらく、列間の区切り線などが原因で出てくる可能性があります。これは、デザイナーが後でスタイルを変更した場合に変更される可能性があります。おそらく、この不一致からセパレーターの幅を割り出し、この値を位置計算式で使用することもできますが、コントロールが提供する準備が整った方法があれば、もちろんこれを使用することをお勧めします。