Dela via


Storleksalternativ i DataGrid-kontrollen

Olika alternativ finns för att styra hur DataGrid justerar sin storlek. De DataGridsamt enskilda rader och kolumner i DataGridkan automatiskt justeras efter deras innehåll eller ställas in till specifika värden. Som standard växer DataGrid och krymper för att passa innehållets storlek.

Ändra storlek på DataGrid

Varningar vid användning av automatisk storleksändring

Som standard är egenskaperna Height och Width för DataGrid inställda på Double.NaN ("Auto" i XAML) och DataGrid justeras till innehållets storlek.

När den placeras i en container som inte begränsar storleken på sina barn, till exempel en Canvas eller StackPanel, sträcker sig DataGrid utanför de synliga gränserna för containern och inga rullningslister visas. Det här villkoret har både användbarhets- och prestandakonsekvenser.

Om Height för DataGrid inte är begränsad när den är bunden till en datauppsättning fortsätter den att lägga till en rad för varje dataobjekt i den bundna datauppsättningen. Detta kan göra att DataGrid växer utanför programmets synliga gränser när rader läggs till. DataGrid visar inte rullningslister i det här fallet eftersom dess Height fortsätter att växa för att rymma de nya raderna.

Ett objekt skapas för varje rad i DataGrid. Om du arbetar med en stor datamängd och tillåter att DataGrid automatiskt storleksanpassar sig, kan skapandet av ett stort antal objekt påverka programmets prestanda.

För att undvika dessa problem när du arbetar med stora datamängder rekommenderar vi att du specifikt anger Height för DataGrid eller placerar den i en container som begränsar dess Height, till exempel en Grid. När Height är begränsad skapar DataGrid bara de rader som får plats i den angivna Heightoch återanvänder dessa rader efter behov för att visa nya data.

Ange DataGrid-storlek

DataGrid kan ställas in på automatisk storlek inom angivna gränser, eller så kan DataGrid anges till en viss storlek. I följande tabell visas de egenskaper som kan anges för att styra DataGrid storlek.

Fastighet Beskrivning
Height Anger en specifik höjd för DataGrid.
MaxHeight Anger den övre gränsen för höjden på DataGrid. DataGrid växer vertikalt tills den når den här höjden.
MinHeight Anger den nedre gränsen för höjden på DataGrid. DataGrid krymper lodrätt tills den når den här höjden.
Width Anger en specifik bredd för DataGrid.
MaxWidth Anger den övre gränsen för bredden på DataGrid. DataGrid växer horisontellt tills den når den här bredden.
MinWidth Anger den nedre gränsen för bredden på DataGrid. DataGrid krymper vågrätt tills den når den här bredden.

Ändra storlek på rader och radrubriker

DataGrid-rader

Som standard är en DataGrid rads egenskap Height inställd på Double.NaN ("Auto" i XAML) och radhöjden expanderas till innehållets storlek. Höjden på alla rader i DataGrid kan anges genom att ange egenskapen DataGrid.RowHeight. Användare kan ändra radhöjden genom att dra radrubrikavdelare.

DataGrid-radrubriker

Om du vill visa radrubriker måste egenskapen HeadersVisibility anges till DataGridHeadersVisibility.Row eller DataGridHeadersVisibility.All. Som standard visas radrubriker och de storleksanpassas automatiskt så att de passar deras innehåll. Radrubrikerna kan ges en viss bredd genom att ange egenskapen DataGrid.RowHeaderWidth.

Ändra storlek på kolumner och kolumnrubriker

DataGrid-kolumner

DataGrid använder värden för DataGridLength och DataGridLengthUnitType struktur för att ange absoluta eller automatiska storlekslägen.

I följande tabell visas de värden som tillhandahålls av den DataGridLengthUnitType strukturen.

Namn Beskrivning
Auto Det automatiska standardstorleksläget anpassar storleken på DataGrid kolumner utifrån innehållet i både celler och kolumnrubriker.
SizeToCells Det cellbaserade automatiska storleksläget ändrar storleken på DataGrid kolumner baserat på innehållet i cellerna i kolumnen, utan att inkludera kolumnrubriker.
SizeToHeader Det sidhuvudbaserade automatiska storleksläget storleksanpassar DataGrid kolumner enbart baserat på innehållet i kolumnrubriker.
Pixel Det pixelbaserade storleksläget baserar storleken på kolumnerna för DataGrid på det numeriska värdet.
Star Stjärnstorleksläget används för att fördela tillgängligt utrymme efter viktade proportioner.

I XAML uttrycks stjärnvärden som n* där n representerar ett numeriskt värde. 1* motsvarar *. Om till exempel två kolumner i en DataGrid hade bredden * och 2*, skulle den första kolumnen få en del av det tillgängliga utrymmet och den andra kolumnen skulle få två delar av det tillgängliga utrymmet.

Klassen DataGridLengthConverter kan användas för att konvertera data mellan numeriska värden eller strängvärden och DataGridLength värden.

Som standard är egenskapen DataGrid.ColumnWidth inställd på SizeToHeaderoch egenskapen DataGridColumn.Width är inställd på Auto. När storleksläget är inställt på Auto eller SizeToCells, växer kolumnerna till bredden på det bredaste synliga innehållet. Vid rullning kommer dessa storlekslägen att leda till att kolumnerna expanderas om innehåll som är större än den aktuella kolumnstorleken rullas i vyn. Kolumnen krymper inte efter att innehållet har rullats ur vyn.

Kolumner i DataGrid kan också ställas in på automatisk storlek endast inom angivna gränser, eller så kan kolumner anges till en viss storlek. I följande tabell visas de egenskaper som kan ställas in för att styra kolumnstorlekar.

Fastighet Beskrivning
DataGrid.MaxColumnWidth Anger den övre gränsen för alla kolumner i DataGrid.
DataGridColumn.MaxWidth Anger den övre gränsen för en enskild kolumn. Åsidosätter DataGrid.MaxColumnWidth.
DataGrid.MinColumnWidth Anger den nedre gränsen för alla kolumner i DataGrid.
DataGridColumn.MinWidth Anger den nedre gränsen för en enskild kolumn. Åsidosätter DataGrid.MinColumnWidth.
DataGrid.ColumnWidth Anger en specifik bredd för alla kolumner i DataGrid.
DataGridColumn.Width Anger en specifik bredd för en enskild kolumn. Åsidosätter DataGrid.ColumnWidth.

DataGrid-kolumnrubriker

Som standardinställning visas DataGrid kolumnrubriker. Om du vill dölja kolumnrubriker måste egenskapen HeadersVisibility anges till DataGridHeadersVisibility.Row eller DataGridHeadersVisibility.None. Som standard, när kolumnrubriker visas, storleksanpassas de automatiskt så att de passar deras innehåll. Kolumnrubrikerna kan ges en viss höjd genom att ange egenskapen DataGrid.ColumnHeaderHeight.

Ändra storlek med musen

Användare kan ändra storlek på DataGrid rader och kolumner genom att dra rad- eller kolumnrubrikavdelare. DataGrid stöder också automatisk storleksändring av rader och kolumner genom att dubbelklicka på rad- eller kolumnrubrikavdelaren. Om du vill förhindra att en användare ändrar storlek på vissa kolumner anger du egenskapen DataGridColumn.CanUserResize till false för de enskilda kolumnerna. Om du vill förhindra att användarna ändrar storlek på alla kolumner anger du egenskapen DataGrid.CanUserResizeColumns till false. Om du vill förhindra att användare ändrar storlek på alla rader anger du egenskapen DataGrid.CanUserResizeRows till false.

Se även