Megosztás a következőn keresztül:


Méretezési beállítások a DataGrid-vezérlőben

A DataGrid méretének szabályozására különböző lehetőségek állnak rendelkezésre. A DataGrid, valamint a DataGridegyes sorai és oszlopai automatikusan méretezhetők a tartalmukra, vagy beállíthatók adott értékekre. Alapértelmezés szerint a DataGrid a tartalom méretének megfelelően növekszik és zsugorodik.

A DataGrid méretezése

Figyelmeztetések az automatikus méretezés használatakor

Alapértelmezés szerint a HeightWidth és DataGrid tulajdonságai Double.NaN ("Auto" értékre vannak állítva XAML-ben), és a DataGrid a tartalom méretéhez igazodik.

Ha olyan tárolóban helyezik el, amely nem korlátozza a gyermekek méretét, például egy Canvas vagy StackPanel, a DataGrid a tároló látható határain túlnyúlik, és a görgetősávok nem jelennek meg. Ez a feltétel a használhatóságot és a teljesítményt is befolyásolja.

Ha egy adatkészlethez van kötve, és a HeightDataGrid-ja nincs korlátozva, akkor a kötött adatkészlet minden egyes adateleméhez hozzá fog adni egy sort. Ez azt eredményezheti, hogy a DataGrid a sorok hozzáadásakor az alkalmazás látható határain kívülre nő. A DataGrid ebben az esetben nem jelenít meg görgetősávokat, mert a Height tovább fog növekedni, hogy befogadja az új sorokat.

A DataGridminden sorához létrejön egy objektum. Ha nagy adatkészlettel dolgozik, és lehetővé teszi, hogy a DataGrid automatikusan méretezhesse magát, nagy számú objektum létrehozása befolyásolhatja az alkalmazás teljesítményét.

A nagy adatkészletek használata során felmerülő problémák elkerülése érdekében javasoljuk, hogy kifejezetten állítsa be a HeightDataGrid, vagy helyezze olyan tárolóba, amely korlátozza a Height, például egy Grid. Ha a Height korlátozva van, a DataGrid csak azokat a sorokat hozza létre, amelyek elférnek a megadott Heightbelül, és szükség szerint újrahasznosítja ezeket a sorokat az új adatok megjelenítéséhez.

A DataGrid méretének beállítása

A DataGrid beállítható automatikus méretre a megadott határokon belül, vagy a DataGrid beállítható egy adott méretre. Az alábbi táblázat azokat a tulajdonságokat mutatja be, amelyek beállíthatók a DataGrid méretének szabályozásához.

Ingatlan Leírás
Height Beállítja a DataGridmegadott magasságát.
MaxHeight A DataGridmagasságának felső határát állítja be. A DataGrid függőlegesen nő, amíg el nem éri ezt a magasságot.
MinHeight A DataGridmagasságának alsó határát állítja be. A DataGrid függőlegesen zsugorodik, amíg el nem éri ezt a magasságot.
Width A DataGridmegadott szélességét állítja be.
MaxWidth A DataGridszélességének felső határát állítja be. A DataGrid vízszintesen növekszik, amíg el nem éri ezt a szélességet.
MinWidth A DataGridszélességének alsó határát állítja be. A DataGrid vízszintesen zsugorodik, amíg el nem éri ezt a szélességet.

Sorok és sorfejlécek méretezése

DataGrid sorok

Alapértelmezés szerint egy DataGrid sor Height tulajdonsága Double.NaN ("Auto" értékre van állítva XAML-ben), a sormagasság pedig a tartalmának méretére lesz kiterjesztve. A DataGrid összes sorának magassága a DataGrid.RowHeight tulajdonság beállításával adható meg. A felhasználók a sorfejléc elválasztóinak húzásával módosíthatják a sormagasságot.

DataGrid-sorfejlécek

A sorfejlécek megjelenítéséhez a HeadersVisibility tulajdonságot DataGridHeadersVisibility.Row vagy DataGridHeadersVisibility.Allértékre kell állítani. Alapértelmezés szerint a sorfejlécek jelennek meg, és automatikusan méretezhetők a tartalomnak megfelelően. A sorfejlécek adott szélességet adhatnak a DataGrid.RowHeaderWidth tulajdonság beállításával.

Oszlopok és oszlopfejlécek méretezése

DataGrid-oszlopok

A DataGrid a DataGridLength és a DataGridLengthUnitType szerkezet értékeit használja az abszolút vagy automatikus méretezési módok megadásához.

Az alábbi táblázat a DataGridLengthUnitType szerkezet által biztosított értékeket mutatja be.

Név Leírás
Auto Az alapértelmezett automatikus méretezési mód a cellák és oszlopfejlécek tartalma alapján méretezi a DataGrid oszlopokat.
SizeToCells A cellaalapú automatikus méretezési mód a DataGrid oszlopok méretét az oszlopban lévő cellák tartalma alapján határozza meg, az oszlopfejléceket nem beleértve.
SizeToHeader A fejlécalapú automatikus méretezési mód csak az oszlopfejlécek tartalma alapján méretez DataGrid oszlopokat.
Pixel A képpontalapú méretezési mód a megadott numerikus érték alapján DataGrid oszlopokat méretez.
Star A csillagméretezés mód a rendelkezésre álló terület súlyozott arányok szerinti elosztására szolgál.

Az XAML-ben a csillagértékek n*-ként vannak kifejezve, ahol az n numerikus értéket jelöl. 1* a *-nak felel meg. Ha például egy DataGrid két oszlopának szélessége * és 2*, az első oszlop a rendelkezésre álló terület egy részét kapja, a második oszlop pedig a rendelkezésre álló terület két részét.

A DataGridLengthConverter osztály használható az adatok numerikus vagy sztringértékek és DataGridLength értékek közötti konvertálására.

Alapértelmezés szerint a DataGrid.ColumnWidth tulajdonság értéke SizeToHeader, a DataGridColumn.Width tulajdonság pedig Auto. Ha a méretezési mód Auto vagy SizeToCellsértékre van állítva, az oszlopok a legszélesebb látható tartalom szélességére nőnek. Görgetéskor ezek a méretezési módok az oszlopok kibontását okozzák, ha az aktuális oszlopméretnél nagyobb tartalom láthatóvá válik. Az oszlop nem zsugorodik, miután a tartalom kigördült a nézetből.

A DataGrid oszlopai is beállíthatók automatikus méretre csak a megadott határokon belül, vagy az oszlopok beállíthatók egy adott méretre. Az alábbi táblázat az oszlopméretek szabályozására beállítható tulajdonságokat mutatja be.

Ingatlan Leírás
DataGrid.MaxColumnWidth A DataGridösszes oszlopának felső határát állítja be.
DataGridColumn.MaxWidth Beállítja az egyes oszlopok felső határát. Felülbírálja DataGrid.MaxColumnWidth.
DataGrid.MinColumnWidth A DataGridösszes oszlopának alsó határát állítja be.
DataGridColumn.MinWidth Beállítja az egyes oszlopok alsó határát. Felülbírálja DataGrid.MinColumnWidth.
DataGrid.ColumnWidth A DataGridösszes oszlopához megadott szélességet állít be.
DataGridColumn.Width Adott szélességet állít be egy adott oszlophoz. Felülbírálja DataGrid.ColumnWidth.

DataGrid-oszlopfejlécek

Alapértelmezés szerint DataGrid oszlopfejlécek jelennek meg. Az oszlopfejlécek elrejtéséhez a HeadersVisibility tulajdonságnak DataGridHeadersVisibility.Row vagy DataGridHeadersVisibility.Nonekell lennie. Alapértelmezés szerint az oszlopfejlécek megjelenítésekor automatikusan méretezhetők a tartalomnak megfelelően. Az oszlopfejlécek adott magasságot adhatnak a DataGrid.ColumnHeaderHeight tulajdonság beállításával.

Átméretezés az egérrel

A felhasználók átméretezhetik DataGrid sorokat és oszlopokat a sor- vagy oszlopfejléc-elválasztók húzásával. A DataGrid a sorok és oszlopok automatikus átméretezését is támogatja, ha duplán kattint a sor- vagy oszlopfejléc-elválasztóra. Ha meg szeretné akadályozni, hogy egy felhasználó átméretezze az egyes oszlopokat, állítsa a DataGridColumn.CanUserResize tulajdonságot az egyes oszlopok false értékére. Ha meg szeretné akadályozni, hogy a felhasználók az összes oszlopot átméretezzék, állítsa a DataGrid.CanUserResizeColumns tulajdonságot falseértékre. Ha meg szeretné akadályozni, hogy a felhasználók az összes sort átméretezzék, állítsa a DataGrid.CanUserResizeRows tulajdonságot falseértékre.

Lásd még