Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
.NET Desktop feedback