2010-03-15 7 views
5

Widziałem różne przykłady aplikacji WPF Widziałem użycie kontrolki Grid dla prawie wszystkiego, nawet najprostszych rzeczy z tylko 1 kolumną lub wierszem.WPF: Dlaczego cała miłość do kontroli sieci?

Ponadto szablony WPF rozpoczynają się od pustej siatki.

Dla mnie, używając StackPanel lub DockPanel jest mniej gadatliwe i są lepsze dla utrzymania (myślę dodając wiersz później i konieczności dodać +1 do wszystkich innych wierszy)

Dlaczego Grid lepsze lub co mi brakuje ?

Odpowiedz

2

Myślę, że jednym z powodów, dla których Grid jest domyślnym elementem jest to, że jest (nieco) bardziej przyjazny dla projektanta.

Z siatką nie ma ograniczeń co do posiadania wielu elementów w jednej "komórce" siatki, co pozwala projektantowi z bezpłatnym miejscem docelowym mieć taką samą elastyczność jak płótno, ale wciąż ma możliwości automatycznego układu, które siatki (oraz inne ładniejsze elementy sterujące układem, takie jak StackPanel i DockPanel).

1

niczego nie brakuje. Mam dość dużo siatek w moich aplikacjach, ale niekoniecznie jako element najwyższego poziomu i zdecydowanie nie w zakresie, który opisujesz.

Być może wielu ludzi po prostu nie zdaje sobie sprawy, że może usunąć początkową siatkę, a zamiast tego wprowadza własną kontrolę do siatki.

1

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

3

Dwa słowa: Rozmiar gwiazdy. Model Grid umożliwia wymiarowanie zawartości do miejsca, które zawiera, bez podawania wprost wielkości kontenera. Elementy sterujące panelem nie.

+1

Uzgodnione, ale potrzebujesz go tylko czasami, nie zawsze. Zwykle można użyć DockPanel do tego samego efektu. –

+0

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. –

Powiązane problemy