Sto cercando di ottenere l'ActualSize di MyUserControl
prima che venga eseguito il rendering utilizzando il metodo Measure
della classe UserControl
come suggerito per il mio previous question. Tuttavia non sta funzionando. MyUserControl
ha un ItemsControl
che è un database con uno List
come illustrato di seguito. Gli articoli aggiunti tramite uc.MyCollection = myCollection;
non vengono visualizzati in uc.DesiredSize.Height
.Ottenere le dimensioni effettive di UserControl prima del rendering
MyUserControl uc= new MyUserControl();
uc.AName = "a1";
uc.Width = 194;
uc.MyCollection = myCollection; //myCollection is a List databound to ItemsControl inside MyUserControl
uc.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
uc.Arrange(new Rect(0, 0, uc.DesiredSize.Width, uc.DesiredSize.Width)); //Needed?
uc.UCHeight = uc.DesiredSize.Height; //size of items databound to ItemsControl not reflected here
uc.UCWidth = uc.DesiredSize.Width;
uc.Margin = new Thickness(34, 42, 0, 0);
myRoot.Children.Add(uc); //myRoot is Canvas
Provate ad aggiungere il 'uc' alla radice prima di richiamare' Mesaure() 'e fare un' UpdateLayout() 'prima di accedere a' DesiredSize'. Questo è quello che faccio di solito. – kev
Questo non funziona. – devnull
@neutrino: cosa non funziona? I valori sono 0 o non sono esatti? I valori – Tigran