Udostępnij za pośrednictwem


Opcje określania rozmiaru w kontrolce DataGrid

Dostępne są różne opcje, aby kontrolować, jak DataGrid dostosowuje swój rozmiar. Element DataGrid, a także poszczególne wiersze i kolumny w tabeli DataGrid, można ustawić na automatyczne dopasowanie rozmiaru do zawartości lub na określone wartości. Domyślnie DataGrid będzie się rozciągać i kurczyć, aby dopasować się do rozmiaru swojej zawartości.

Ustalanie rozmiaru usługi DataGrid

Uwaga podczas korzystania z automatycznego określania rozmiaru

Domyślnie właściwości Height i Width w DataGrid są ustawione na Double.NaN ("Auto" w XAML), a DataGrid dopasuje się do rozmiaru swojej zawartości.

Po umieszczeniu wewnątrz kontenera, który nie ogranicza rozmiaru swoich elementów podrzędnych, takich jak Canvas lub StackPanel, DataGrid rozciąga się poza widoczne granice kontenera i paski przewijania nie są wyświetlane. Ten warunek ma wpływ zarówno na użyteczność, jak i wydajność.

Jeśli powiązany jest z zestawem danych, a Height w DataGrid nie jest ograniczony, będzie nadal dodawać wiersz dla każdego elementu danych w powiązanym zestawie danych. Może to spowodować, że DataGrid będzie się rozrastać poza widoczne granice aplikacji w miarę dodawania kolejnych wierszy. W tym przypadku paski przewijania DataGrid nie będą wyświetlane, ponieważ Height będzie nadal rosnąć, aby pomieścić nowe wiersze.

Tworzony jest obiekt dla każdego wiersza w DataGrid. Jeśli pracujesz z dużym zestawem danych i zezwalasz DataGrid na automatyczne ustawianie rozmiaru, utworzenie dużej liczby obiektów może mieć wpływ na wydajność aplikacji.

Aby uniknąć tych problemów podczas pracy z dużymi zestawami danych, zaleca się właściwe skonfigurowanie Height w DataGrid, lub umieszczenie go w kontenerze, który ograniczy jego Height, na przykład Grid. Gdy parametr Height jest ograniczony, DataGrid spowoduje utworzenie tylko tych wierszy, które będą mieścić się w określonym Heightelemencie i będzie ponownie wykorzystywać te wiersze w miarę potrzeby, aby wyświetlić nowe dane.

Ustawianie rozmiaru usługi DataGrid

DataGrid Można ustawić opcję automatycznego rozmiaru w określonych granicach lub DataGrid można ustawić na określony rozmiar. W poniższej tabeli przedstawiono właściwości, które można ustawić w celu kontrolowania rozmiaru DataGrid .

Majątek Opis
Height Ustawia określoną wysokość dla elementu DataGrid.
MaxHeight Ustawia górną granicę dla wysokości DataGrid. DataGrid będzie rosnąć w pionie, dopóki nie osiągnie tej wysokości.
MinHeight Ustawia dolną granicę wysokości DataGrid. `DataGrid skurczy się w pionie, aż osiągnie tę wysokość.`
Width Ustawia określoną szerokość elementu DataGrid.
MaxWidth Ustawia górną granicę szerokości DataGrid. DataGrid będzie się rozrastać na szerokość, dopóki nie osiągnie tej szerokości.
MinWidth Ustawia dolną granicę dla szerokości DataGrid. DataGrid będzie kurczyć się poziomo, aż osiągnie tę szerokość.

Dostosowywanie rozmiaru wierszy i nagłówków wierszy

Wiersze usługi DataGrid

Domyślnie właściwość wiersza DataGridHeight jest ustawiona na Double.NaN ("Auto" w XAML), a wysokość wiersza dopasuje się do rozmiaru jego zawartości. Wysokość wszystkich wierszy w obiekcie DataGrid można określić, ustawiając właściwość DataGrid.RowHeight. Użytkownicy mogą zmieniać wysokość wiersza, przeciągając separatory nagłówków wierszy.

Nagłówki wierszy usługi DataGrid

Aby wyświetlić nagłówki wierszy, właściwość musi być ustawiona HeadersVisibility na DataGridHeadersVisibility.Row lub DataGridHeadersVisibility.All. Domyślnie nagłówki wierszy są wyświetlane i mają automatycznie rozmiar w celu dopasowania ich do zawartości. Nagłówki wierszy mogą mieć określoną szerokość, ustawiając DataGrid.RowHeaderWidth właściwość .

Ustalanie rozmiaru kolumn i nagłówków kolumn

Kolumny DataGrid

DataGrid używa wartości DataGridLength i struktury DataGridLengthUnitType do określania bezwzględnych lub automatycznych trybów rozmiaru.

Poniższa tabela pokazuje wartości, które podaje struktura DataGridLengthUnitType.

Nazwa Opis
Auto Domyślny tryb automatycznego określania rozmiaru kolumn określa kolumny DataGrid na podstawie zawartości zarówno komórek, jak i nagłówków kolumn.
SizeToCells Automatyczny tryb ustalania rozmiaru kolumny na podstawie zawartości komórek w kolumnach, nie obejmujący nagłówków.
SizeToHeader Tryb automatycznego rozmiaru oparty na nagłówkach kolumn określa rozmiar DataGrid tylko na podstawie zawartości nagłówków kolumn.
Pixel Tryb ustalania rozmiaru oparty na pikselach ustala rozmiary kolumn DataGrid na podstawie podanej wartości liczbowej.
Star Tryb określania rozmiaru gwiazdy jest używany do dystrybucji dostępnego miejsca według proporcji ważonych.

W języku XAML wartości gwiazdek są wyrażane jako n*, gdzie n reprezentuje wartość liczbową. Wartość 1* jest równoważna *. Jeśli na przykład dwie kolumny w obiekcie DataGrid mają szerokość * i 2*, pierwsza kolumna otrzyma jedną część dostępnego miejsca, a druga kolumna otrzyma dwie części dostępnego miejsca.

Klasa DataGridLengthConverter może służyć do konwertowania danych między wartościami liczbowymi lub ciągowymi oraz wartościami DataGridLength.

Domyślnie właściwość DataGrid.ColumnWidth jest ustawiona na SizeToHeader, a właściwość DataGridColumn.Width jest ustawiona na Auto. Gdy tryb określania rozmiaru jest ustawiony na Auto lub SizeToCells, kolumny będą rosnąć do szerokości najszerszej widocznej zawartości. Podczas przewijania te tryby rozmiaru spowodują rozszerzenie kolumn, jeśli zawartość większa niż bieżący rozmiar kolumny zostanie przewijana do widoku. Kolumna nie zmniejsza się po przewinięciu zawartości z widoku ekranu.

Kolumny w obiekcie DataGrid można również ustawić tak, aby automatycznie ustawiały rozmiar tylko w określonych granicach, a kolumny można ustawić na określony rozmiar. W poniższej tabeli przedstawiono właściwości, które można ustawić w celu kontrolowania rozmiarów kolumn.

Majątek Opis
DataGrid.MaxColumnWidth Ustawia górną granicę dla wszystkich kolumn w obiekcie DataGrid.
DataGridColumn.MaxWidth Ustawia górną granicę dla pojedynczej kolumny. Zastępuje .DataGrid.MaxColumnWidth
DataGrid.MinColumnWidth Ustawia dolną granicę dla wszystkich kolumn w obiekcie DataGrid.
DataGridColumn.MinWidth Ustawia dolną granicę dla pojedynczej kolumny. Zastępuje .DataGrid.MinColumnWidth
DataGrid.ColumnWidth Ustawia określoną szerokość dla wszystkich kolumn w obiekcie DataGrid.
DataGridColumn.Width Ustawia określoną szerokość dla pojedynczej kolumny. Zastępuje .DataGrid.ColumnWidth

Nagłówki kolumn siatki danych

Domyślnie nagłówki kolumn DataGrid są wyświetlane. Aby ukryć nagłówki kolumn, właściwość musi być ustawiona HeadersVisibility na DataGridHeadersVisibility.Row lub DataGridHeadersVisibility.None. Domyślnie, gdy nagłówki kolumn są wyświetlane, są automatycznie dopasowywane do zawartości. Nagłówki kolumn mogą mieć określoną wysokość, ustawiając DataGrid.ColumnHeaderHeight właściwość .

Zmiana rozmiaru za pomocą myszy

Użytkownicy mogą zmieniać rozmiar DataGrid wierszy i kolumn, przeciągając separatory nagłówków wierszy lub kolumn. Funkcja DataGrid obsługuje również automatyczną zmianę rozmiaru wierszy i kolumn przez dwukrotne kliknięcie modułu podziału nagłówka wiersza lub kolumny. Aby uniemożliwić użytkownikowi zmianę rozmiaru określonych kolumn, ustaw właściwość DataGridColumn.CanUserResize na false dla poszczególnych kolumn. Aby uniemożliwić użytkownikom zmianę rozmiaru DataGrid.CanUserResizeColumns wszystkich kolumn, ustaw właściwość na false. Aby uniemożliwić użytkownikom zmianę rozmiaru DataGrid.CanUserResizeRows wszystkich wierszy, ustaw właściwość na false.

Zobacz także