Come posso ottenere una finestra WPF per espandere per adattarsi il contenuto di un ItemsControl che cambia in modo dinamico?
-
02-10-2019 - |
Domanda
Ho un'applicazione WPF, che inizia con una finestra molto piccola. Qualcosa nella zona di 200x100. Quando certi eventi vengono generati da una sorgente esterna, aggiungo un controllo per l'area ItemsControl della mia finestra. Il controllo oggetti è attualmente impostato per utilizzare uno StackPanel PanelTemplate.
Quello che voglio, è per la finestra dell'applicazione a crescere quando i controlli vengono aggiunti al ItemsControl. È questo a tutto il possibile? L'idea alla base di questo è quello di tenere la finestra più piccolo possibile in ogni momento. Dovrebbe anche ridursi quando i controlli vengono rimossi dalla ItemsControl.
Grazie.
Soluzione
Sì, è possibile. È possibile utilizzare Window.SizeToContent
proprietà di farlo. E solo impostare un MaxHeight
e MaxWidth
sul Window
o ItemsControl
dentro appena in modo da non continuare a crescere e uscire dai limiti dello schermo.
Altri suggerimenti
E se si vuole impostare in XAML per WPF è possibile utilizzare
<Window
SizeToContent="WidthAndHeight"
>
Può essere impostato separatamente per la Height
e la Width
se necessario.