W programie wykorzystuję Grid-a, na którego wstawiam z poziomu kodu własne kontrolki. W związku z tym, że mogą być zwijane/rozwijane (czyli ich rozmiar się zmienia), ustawiam szerokość kolumn i wysokość wierszy na Auto:
ColumnDefinition newColumn = new ColumnDefinition();
newColumn.Width = new GridLength(1, GridUnitType.Auto);
grid.ColumnDefinitions.Add(newColumn);
i dodaję kontrolkę do grida:
Grid.SetRow(nodeControl, nr_wiersza);
Grid.SetColumn(nodeControl, nr_kolumny);
grid.Children.Add(nodeControl);
Kolejną rzeczą, która jest mi potrzebna jest pobranie współrzędnych wstawionej kontrolki (nodeControl) względem "początku" grida. Jak to zrobić? Właściwość Margin kontrolki ma, oczywiście, wartości zerowe (bo jej nie ustawiam nigdzie). Nie udało mi się też np. pobrać i zsumować szerokości kolumn "poprzedzających" tą zawierającą nodeControl. Nie działa ani Width ani ActualWidth.