Sterowanie siatką WPF z 3 rzędami i 3 kolumnami. Wysokość danego rzędu jest ustawiona na Auto. W pierwszych dwóch komórkach mam dwie kontrolki o dynamicznych wysokościach. W trzeciej komórce mam inną kontrolę, którą chcę automatycznie ustawić, aby rozciągała się w komórce siatki. Próbowałem już VerticalAlignment="Stretch"
, ale to po prostu ustawia Wysokość Rzędu Gridowego równą wysokości kontrolnej. Jakie są moje opcje tutaj?WPF: Ustaw wysokość kontrolną, aby wypełnić wysokość wiersza siatki
Odpowiedz
Nie wiem, jakiego rodzaju kontroli używasz w komórce 3, ale większość elementów sterujących WPF automatycznie się rozciągnie, aby zmieścić się w komórce siatki. Wysokość wiersza siatki będzie ustawiona przez wysokość elementów sterujących w komórkach 1 i 2.
Jeśli używasz niestandardowego sterowania, w którym domyślne zachowanie dla wysokości jest inne, możesz ustawić wartość Height="Auto"
.
Jeśli to nie działa albo można zrobić wiązania danych, aby uzyskać rzeczywistą wysokość kontrolę w każdej komórce 1 lub 2. Ustaw właściwość kontrolą Height
w komórki 3 do następujących:
Height="{Binding ActualHeight, ElementName=MyControlNameFromCell1, Mode=OneWay}"
EDIT
inny sposób, który może być bardziej wydajny jest przeprowadzenie wiążącej na wysokość rzędu danych. Dlatego zamiast używać "Auto"
dla wysokości wiersza, użyj powiązania danych pokazanego powyżej.
- 1. Ustaw kolumnę siatki/szerokość wiersza/wysokość dynamicznie
- 2. JQgrid ustaw wysokość wiersza
- 3. Ustaw wysokość wiersza listy w kodzie
- 4. Jak ustawić wysokość wiersza listy WPF?
- 5. Jak zresetować wysokość wiersza siatki po użyciu splittera?
- 6. Ustaw szerokość i wysokość sceny
- 7. Ustaw wysokość UITableView na wysokość zawartości z Auto Layout
- 8. Ustaw Wysokość wideo w HTML5
- 9. Rozciągnij wysokość pola wprowadzania, aby wypełnić komórkę tabeli
- 10. Ustaw wysokość linku na 100% jego rodzica
- 11. Zestaw Naprawiono wysokość wiersza GridView
- 12. Automatyczna wysokość WPF w kodzie
- 13. C# WPF ProgressBar "domyślna" wysokość
- 14. Wysokość siatki wiążącej Używanie FindAncestor i AncestorLevel do innej siatki
- 15. Ustaw początkową wysokość obrazu paralaksy w CollapsingToolbarLayout
- 16. Ustaw wysokość 100% na podziałce bezwzględnej
- 17. Ustaw wysokość Viewpager wewnątrz Scrollview w Androidzie
- 18. Jak uzyskać rzeczywistą wysokość wiersza siatki z siatką o wysokości wiersza *
- 19. Ustaw maksymalną wysokość za pomocą javascript
- 20. Ustaw wysokość ListView w React Native
- 21. Android: Ustaw programowo minimalną wysokość widoku
- 22. C# Zmień listę Wyświetl wysokość elementu/wiersza
- 23. Jak ustawić wysokość wiersza ListView w Xamarin.Forms
- 24. Jak zmienić wysokość wiersza w QTextTable
- 25. MaterialiseCSS Jak mogę zwiększyć wysokość kolumny wiersza?
- 26. Rozpraszacz siatki: ogranicz wysokość linii do rozmiaru okna
- 27. CSS ustaw szerokość, aby wypełnić% pozostałego obszaru
- 28. Sprawdzaj DIV wysokość i ustawienie div wysokość
- 29. Jak dynamicznie zmieniać wysokość ImageView Wysokość
- 30. Ustawianie RowDefinition wysokość od StaticResource
Dzięki. Kontrola w komórce 3 to TabControl, podczas gdy komórki 1 i komórka 2 mają w nich siatki. Problem polega na tym, że zawartość TabControl (a więc i samego TableControl) jest większa niż obie siatki, więc cały wiersz zajmuje wysokość TabControl. Zamiast tego chciałbym, aby TabControl wziął wysokość kratek (większy z nich) i wprowadził w siebie pasek przewijania, aby odsłonić całą jego zawartość. Dodałem już ScrollViewer do TabControl, ale ponieważ TabControl staje się wystarczająco duży, aby pokazać całą jego zawartość, ScrollViewer pozostaje bezużyteczny. – dotNET
Wiązanie również nie działa. Aktualizacja: – dotNET
. Wiązanie faktycznie działa. Problem polegał na tym, że w właściwościach TabControl miałem Margin = "3", co spowodowało, że stał się tak duży, jak wymaga tego jego zawartość. Usunięcie Marginesu i dodanie wspomnianego wyżej wiązania Wysokości wydaje się zdziałać. – dotNET