Znalazłem, że dla bardziej skomplikowanych okien, łatwiej jest podzielić je na obszary funkcjonalne, które są dość niezależne (ruch i wielkość) innych. Siatki pozwalają na współistnienie tych obszarów w jednym panelu i pozwalają na ich pozycjonowanie bez względu na to, gdzie są inne kontrole (w pewnym stopniu).
Na przykład w projekcie Jestem working on right now, mam okno, które będzie menedżerem wysyłki. Chcę trzy widoki listy (przesyłki, paczki, elementy) Mam kontrolę siatki z dwiema kolumnami; jeden z listą pakietów i rozdzielaczem siatki, drugi z zagnieżdżoną siatką z dwiema pozostałymi listami i rozdzielaczem siatki.
Widziałem wielu projektantów przełamujących okno w takie obszary, a robienie tego z czymkolwiek innym niż siatka po prostu nie działa, ponieważ nie ma dyskretnych "komórek", w których przedmioty pośrednio żyją. Dość kilka programów okna biorą ten projekt i dlatego domyślam się, że kiedy mieli spotkanie i zapytali, co powinno być domyślnym panelem kontenera, siatka była wyborem opartym na tym fakcie.
Cory
Uzgodnione, ale potrzebujesz go tylko czasami, nie zawsze. Zwykle można użyć DockPanel do tego samego efektu. –
Może w nieco podobny sposób. Ale jeśli chcesz podzielić okno na pół, powiedzmy, nie możesz tego zrobić z DockPanel. Nie bez robienia rzeczy, których prawdopodobnie nie powinieneś, np. Wiązania z własnością ActualSize rodzica. –