dobrze, co chcę, to powiedzmy, że mam "panel" o szerokości 100 i wysokości 100
teraz chcę umieścić obiekty X o rozmiarze 20, więc gdy dodaję więcej 5 elementów, wszystkie elementy powinny znajdować się w jednej linii
| Pozycja1 | Pozycja2 | Pozycja3 | Pozycja4 | Pozycja5 |
teraz, gdybym dodał jeszcze jeden, to chcę podzielić go na 2 linie z 3 pozycjami w każdym rzędzie
| Pozycja1 | Pozycja2 | Pozycja3 |
| Item4 | Item5 | Item6 |
i cóż, domyślam się, że masz rację, iv próbowałem panelu stosu, ale nie mogę go zmusić do pracy tak, jak chcę ...
Edytować:
cóż, nie ma znaczenia, że mutch, jeśli każdy wiersz ma taką samą ilość pozycji ... więc wrapPanel powinien wykonać zadanie następny problem -> Tutaj
Odpowiedzi:
2 dla odpowiedzi № 1Nie ma standardowego panelu WPF, który zrobi to za Ciebie, WrapPanel jest blisko, ale nie upewni się, że twoje rzędy są równe. Najlepiej jest zaimplementować własny panel. Oto dobry przykład na codeproject
1 dla odpowiedzi nr 2
The WrapPanel powinien odpowiadać Twoim potrzebom:
Kontrolki są umieszczone w a stos lub rządw oparciu o Orientację własność. Oprócz układania w stos WrapPanel zapewnia obsługę owijania dla zawartych kontroli. Tak więc, jeśli więcej formanty są dodawane do WrapPanel niż może być wyświetlany przez szerokość WrapPanel, są owinięte wokół tworzą dodatkowy stos lub rząd.
Szczerze mówiąc, nie próbowałem tego konkretnego wymagania osobiście.
1 dla odpowiedzi nr 3
Myślę, że możesz użyć WrapPanel ... ale wtedy dostaniesz 2 linie, (5 przedmiotów i 1 przedmiot) ..
Co by się stało, gdybyś miał, powiedzmy, 7 przedmiotów?
-1 dla odpowiedzi № 4
Nie sądzę, że będziesz w stanie zdobyć kontenerkontrola, która robi to automatycznie. Możesz mieć Grid z dwoma rzędami i StackPanel w każdym rzędzie. Podczas dodawania elementów trzeba programowo wybrać, który StackPanel ma włożyć każdy element.