[WPF, C#] Pozycja kontrolki na Grid-zie

0

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.

0

Hmm, a po co ci pozycja? W gridzie jest to relatywne, bez sensu wydaje mi się trochę szukać współrzędnych kontrolki. Jak chcesz ustawiać kontrolkę gdzie chcesz to jest Canvas, a jak nie, to zdajesz się na WPFa, że to dobrze poukłada.
Może to, co chcesz zrobić, da się zrobić jakoś inaczej?

0

Chodzi o to, że mam kontrolki, a pomiędzy nimi muszę jeszcze coś ręcznie narysować. Canvas byłby dobry, ale ze względu na to, że kontrolki są rozmieszczane wg wierszy i kolumn, w canvasie musiałbym przy rozciągnięciu jednej kontrolki przesuwać wszystkie inne ręcznie. A grid robi to za mnie.

W każdym razie udało mi się dobrać do współrzędnych i szerokości kolumn - w zdarzeniu SizeChanged kontrolek.

1 użytkowników online, w tym zalogowanych: 0, gości: 1