Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
K dispozici jsou různé možnosti, jak kontrolovat velikost DataGrid. Jednotlivé DataGridřádky a sloupce v sadě DataGridmohou být nastaveny tak, aby automaticky odpovídaly jejich obsahu, nebo lze nastavit na konkrétní hodnoty. Ve výchozím nastavení se DataGrid zvětší nebo zmenší podle velikosti svého obsahu.
Určení velikosti DataGridu
Upozornění při používání automatického nastavení velikosti
Ve výchozím nastavení jsou vlastnosti Height a Width u DataGrid nastaveny na Double.NaN ("Auto" v XAML) a DataGrid se upraví podle velikosti svého obsahu.
Při umístění uvnitř kontejneru, který neomezuje velikost svých dětí, jako je například Canvas nebo StackPanel, DataGrid se roztáhne za viditelné hranice kontejneru a posuvníky se nezobrazí. Tato podmínka má vliv na použitelnost i výkon.
Pokud je vázána na datovou sadu, pokud HeightDataGrid není omezeno, bude i nadále přidávat řádek pro každou položku dat v vázané sadě dat. To může způsobit, že se DataGrid zvětší mimo viditelné hranice vaší aplikace při přidávání řádků. V DataGrid tomto případě se posuvníky nezobrazí, protože jeho Height velikost bude nadále růst tak, aby vyhovovala novým řádkům.
Objekt je vytvořen pro každý řádek v objektu DataGrid. Pokud pracujete s velkou sadou dat a umožníte DataGrid automaticky upravit svou velikost, může vytvoření velkého počtu objektů ovlivnit výkon vaší aplikace.
Pokud se chcete těmto problémům vyhnout při práci s velkými datovými sadami, doporučujeme konkrétně nastavit HeightDataGrid nebo je umístit do kontejneru, který omezí jejich Height velikost, například Grid. Pokud je omezení Height omezeno, vytvoří pouze řádky, DataGrid které se vejdou do zadaného objektu Height, a podle potřeby tyto řádky recyklují, aby se zobrazila nová data.
Nastavení velikosti DataGridu
Lze DataGrid nastavit na automatickou velikost v rámci zadaných hranic nebo DataGrid lze nastavit na určitou velikost. V následující tabulce jsou uvedeny vlastnosti, které lze nastavit tak, aby řídily DataGrid velikost.
| Vlastnictví | Popis |
|---|---|
| Height | Nastaví konkrétní výšku pro DataGrid. |
| MaxHeight | Nastaví horní hranici výšky DataGrid. Bude DataGrid růst svisle, dokud nedosáhne tuto výšku. |
| MinHeight | Nastaví dolní mez výšky DataGrid. DataGrid se bude zmenšovat svisle, dokud nedosáhne této výšky. |
| Width | Nastaví konkrétní šířku pro DataGrid. |
| MaxWidth | Nastaví horní mez šířky DataGrid. Bude DataGrid růst vodorovně, dokud nedosáhne této šířky. |
| MinWidth | Nastaví dolní mez šířky DataGrid. Zmenší se DataGrid vodorovně, dokud nedosáhne této šířky. |
Změna velikosti řádků a záhlaví řádků
Řádky DataGridu
Ve výchozím nastavení DataGrid je vlastnost řádku Height nastavena na Double.NaN ("Auto" v XAML) a výška řádku se rozšíří na velikost jejího obsahu. Výšku všech řádků v objektu DataGrid lze určit nastavením DataGrid.RowHeight vlastnosti. Uživatelé mohou změnit výšku řádku přetažením rozdělovačů záhlaví řádku.
Řádková záhlaví DataGrid
Chcete-li zobrazit záhlaví řádků, vlastnost musí být nastavena na HeadersVisibility nebo DataGridHeadersVisibility.Row. Ve výchozím nastavení se záhlaví řádků zobrazují a automaticky se přizpůsobí jejich obsahu. Nastavením vlastnosti DataGrid.RowHeaderWidth lze záhlaví řádků nastavit na konkrétní šířku.
Nastavení velikosti sloupců a záhlaví sloupců
Sloupce DataGrid
DataGrid používá hodnoty struktury DataGridLength a DataGridLengthUnitType k určení absolutní nebo automatické režimy velikosti.
Následující tabulka ukazuje hodnoty poskytované strukturou DataGridLengthUnitType .
| Název | Popis |
|---|---|
| Auto | Výchozí režim automatického nastavení velikosti formátuje DataGrid sloupce na základě obsahu záhlaví buněk i sloupců. |
| SizeToCells | Režim automatické velikosti založený na buňkách upravuje DataGrid sloupce na základě obsahu buněk ve sloupci, s výjimkou záhlaví sloupců. |
| SizeToHeader | Režim automatické velikosti založený na záhlaví formátuje DataGrid sloupce pouze na základě obsahu záhlaví sloupců. |
| Pixel | Režim nastavení velikosti založený na pixelech formátuje DataGrid sloupce na základě zadané číselné hodnoty. |
| Star | Režim velikosti hvězd se používá k distribuci dostupného prostoru váženými proporcemi. V jazyce XAML jsou hvězdicové hodnoty vyjádřeny jako n*, kde n představuje číselnou hodnotu. 1* je ekvivalentní *. Pokud by například dva sloupce v DataGrid měly šířky * a 2*, první sloupec by získal jednu část dostupného prostoru a druhý sloupec dvě části. |
Třídu DataGridLengthConverter lze použít k převodu dat mezi číselnými nebo řetězcovými hodnotami a DataGridLength hodnotami.
Ve výchozím nastavení je vlastnost DataGrid.ColumnWidth nastavena na SizeToHeader, a vlastnost DataGridColumn.Width nastavena na Auto. Když je režim nastavení velikosti nastaven na Auto nebo SizeToCells, sloupce se zvětší na šířku jejich nejširšího viditelného obsahu. Při posouvání tyto režimy změny velikosti způsobí rozšíření sloupců, pokud se obsah, který je větší než aktuální velikost sloupce, posune do zobrazení. Sloupec se po posunutí obsahu mimo zobrazení nezmenší.
Sloupce ve sloupcích DataGrid lze také nastavit tak, aby se automaticky nastavily jenom v rámci zadaných hranic, nebo sloupce lze nastavit na určitou velikost. V následující tabulce jsou uvedeny vlastnosti, které lze nastavit tak, aby řídily velikosti sloupců.
| Vlastnictví | Popis |
|---|---|
| DataGrid.MaxColumnWidth | Nastaví horní mez pro všechny sloupce v DataGrid. |
| DataGridColumn.MaxWidth | Nastaví horní mez pro jednotlivé sloupce. Přepíše DataGrid.MaxColumnWidth. |
| DataGrid.MinColumnWidth | Nastaví dolní mez pro všechny sloupce v objektu DataGrid. |
| DataGridColumn.MinWidth | Nastaví dolní mez pro jednotlivé sloupce. Přepíše DataGrid.MinColumnWidth. |
| DataGrid.ColumnWidth | Nastaví určitou šířku pro všechny sloupce v sadě DataGrid. |
| DataGridColumn.Width | Nastaví určitou šířku pro jednotlivé sloupce. Přepíše DataGrid.ColumnWidth. |
Záhlaví sloupců DataGrid
Ve výchozím nastavení se zobrazují záhlaví sloupců DataGrid. Chcete-li skrýt záhlaví sloupců, musí být vlastnost HeadersVisibility nastavena na DataGridHeadersVisibility.Row nebo DataGridHeadersVisibility.None. Ve výchozím nastavení, když jsou zobrazena záhlaví sloupců, automaticky se přizpůsobí jejich obsahu. Výšku záhlaví sloupců lze nastavit konkrétně pomocí vlastnosti DataGrid.ColumnHeaderHeight.
Změna velikosti pomocí myši
Uživatelé můžou změnit velikost DataGrid řádků a sloupců přetažením rozdělovačů záhlaví řádků nebo sloupců. Podporuje DataGrid také automatickou změnu velikosti řádků a sloupců poklikáním na oddělovač záhlaví řádků nebo sloupců. Pokud chcete zabránit uživateli ve změně velikosti konkrétních sloupců, nastavte vlastnost DataGridColumn.CanUserResize pro jednotlivé sloupce na false. Chcete-li uživatelům zabránit ve změně velikosti všech sloupců, nastavte DataGrid.CanUserResizeColumns vlastnost na false hodnotu. Chcete-li zabránit uživatelům měnit velikost všech řádků, nastavte vlastnost DataGrid.CanUserResizeRows na hodnotu false.
Viz také
.NET Desktop feedback