Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Es stehen verschiedene Optionen zur Verfügung, um zu steuern, wie DataGrid seine Größe festlegt. Die DataGrid-Elemente sowie die einzelnen Zeilen und Spalten in der DataGrid können so eingestellt werden, dass ihre Größe automatisch ihrem Inhalt angepasst wird oder auf spezifische Werte festgelegt wird. Standardmäßig passt sich die DataGrid der Größe ihres Inhalts an, indem sie wächst und schrumpft.
Größenanpassung des DataGrid
Vorsicht bei der Verwendung der automatischen Größenanpassung
Standardmäßig sind die Height- und Width-Eigenschaften des DataGrid-Elements auf Double.NaN (bzw. "Auto
" in XAML) festgelegt, und das DataGrid passt sich der Größe seines Inhalts an.
Wenn sie in einem Container platziert wird, der die Größe der untergeordneten Elemente nicht einschränkt, wie z. B. ein Canvas oder StackPanel, wird die DataGrid über die sichtbaren Begrenzungen des Containers hinausgehen und die Bildlaufleisten werden nicht angezeigt. Diese Bedingung hat sowohl Auswirkungen auf die Benutzerfreundlichkeit als auch auf die Leistung.
Wenn ein Datensatz gebunden ist und Height des DataGrid nicht eingeschränkt ist, wird für jedes Datenelement im gebundenen Datensatz weiterhin eine Zeile hinzugefügt. Dies kann dazu führen, dass der DataGrid Bereich außerhalb der sichtbaren Grenzen der Anwendung vergrößert wird, wenn Zeilen hinzugefügt werden. In DataGrid diesem Fall werden keine Bildlaufleisten angezeigt, da Height weiterhin anwächst, um Platz für die neuen Zeilen zu schaffen.
Ein Objekt wird für jede Zeile in der DataGrid erstellt. Wenn Sie mit einem großen Datensatz arbeiten und das DataGrid sich automatisch in der Größe anpasst, kann die Erstellung einer Vielzahl von Objekten die Leistung Ihrer Anwendung beeinträchtigen.
Um diese Probleme zu vermeiden, wenn Sie mit großen Datasets arbeiten, wird empfohlen, dass Sie das Height des DataGrid spezifisch festlegen oder es in einem Container platzieren, der seine Height einschränkt, z. B. eine Grid. Wenn Height eingeschränkt ist, werden vom DataGrid nur die Zeilen erstellt, die in den angegebenen Height-Bereich passen, und diese Zeilen werden bei Bedarf wiederverwendet, um neue Daten anzuzeigen.
Festlegen der DataGrid-Größe
Die DataGrid kann so eingestellt werden, dass sie sich automatisch innerhalb der angegebenen Grenzen anpasst. Alternativ kann die DataGrid auf eine bestimmte Größe eingestellt werden. In der folgenden Tabelle sind die Eigenschaften aufgeführt, die zum Steuern der DataGrid Größe festgelegt werden können.
Eigentum | BESCHREIBUNG |
---|---|
Height | Legt eine bestimmte Höhe für die DataGrid. |
MaxHeight | Legt die obere Grenze für die Höhe des DataGrid fest. Die DataGrid wird solange vertikal wachsen, bis sie diese Höhe erreicht. |
MinHeight | Legt die untere Grenze für die Höhe des DataGrid fest. Das DataGrid wird sich vertikal verkleinern, bis es diese Höhe erreicht. |
Width | Legt eine bestimmte Breite für die DataGrid fest. |
MaxWidth | Legt die obere Grenze für die Breite der DataGrid. Die DataGrid Breite wird horizontal vergrößert, bis sie diese Breite erreicht. |
MinWidth | Legt die untere Grenze für die Breite des DataGrid fest. Das DataGrid wird sich horizontal verkleinern, bis es diese Breite erreicht. |
Größenanpassung von Zeilen und Zeilenüberschriften
DataGrid-Zeilen
Standardmäßig wird die DataGrid-Eigenschaft einer Height-Zeile auf Double.NaN ("Auto
" in XAML) festgelegt, und die Zeilenhöhe wird entsprechend der Größe ihres Inhalts erweitert. Die Höhe aller Zeilen in der DataGrid Zeile kann durch Festlegen der DataGrid.RowHeight Eigenschaft angegeben werden. Benutzer können die Zeilenhöhe ändern, indem Sie die Zeilenkopftrennlinien ziehen.
DataGrid-Zeilenüberschriften
Um Zeilenüberschriften anzuzeigen, muss die Eigenschaft HeadersVisibility auf DataGridHeadersVisibility.Row oder DataGridHeadersVisibility.All gesetzt werden. Zeilenüberschriften werden standardmäßig angezeigt und ihre Größe wird automatisch so angepasst, dass sie an ihren Inhalt angepasst sind. Die Zeilenüberschriften können durch Festlegen der DataGrid.RowHeaderWidth Eigenschaft eine bestimmte Breite erhalten.
Größenanpassung von Spalten und Spaltenüberschriften
DataGrid-Spalten
Die Werte der DataGrid und DataGridLength Struktur werden in der DataGridLengthUnitType verwendet, um absolute oder automatische Größenmodi anzugeben.
In der folgenden Tabelle sind die Werte aufgeführt, die von der DataGridLengthUnitType Struktur bereitgestellt werden.
Name | BESCHREIBUNG |
---|---|
Auto | Der standardmäßige automatische Anpassungsmodus für Größen bemisst DataGrid Spalten basierend auf dem Inhalt von Zellen und Spaltenüberschriften. |
SizeToCells | Der zellenbasierte automatische Größenanpassungsmodus passt DataGrid Spalten basierend auf dem Inhalt von Zellen in der Spalte an, nicht einschließlich Spaltenüberschriften. |
SizeToHeader | Der kopfzeilenbasierte automatische Größenanpassungsmodus bestimmt die Größe von DataGrid Spalten nur basierend auf dem Inhalt von Spaltenüberschriften. |
Pixel | Der pixelbasierte Größenanpassungsmodus dimensioniert die DataGrid Spalten basierend auf dem zur Verfügung gestellten numerischen Wert. |
Star | Der Sterngrößenmodus wird verwendet, um den verfügbaren Platz nach gewichteten Proportionen zu verteilen. In XAML werden Sternwerte als n* ausgedrückt, wobei n einen numerischen Wert darstellt. 1* entspricht *. Wenn z. B. zwei Spalten in einer DataGrid Breite von * und 2* vorhanden sind, erhält die erste Spalte einen Teil des verfügbaren Platzes, und die zweite Spalte erhält zwei Teile des verfügbaren Platzes. |
Die DataGridLengthConverter Klasse kann verwendet werden, um Daten zwischen numerischen oder Zeichenfolgenwerten und DataGridLength Werten zu konvertieren.
Standardmäßig ist die DataGrid.ColumnWidth Eigenschaft auf SizeToHeader, und die DataGridColumn.Width Eigenschaft ist auf Autofestgelegt. Wenn der Größenmodus auf Auto "Oder SizeToCells" festgelegt ist, werden Spalten auf die Breite ihres breitesten sichtbaren Inhalts vergrößert. Beim Scrollen werden diese Größenmodi dazu führen, dass Spalten erweitert werden, wenn Inhalte, die größer als die aktuelle Spaltengröße sind, in die Ansicht verschoben werden. Die Spalte wird nicht verkleinert, nachdem der Inhalt aus dem Sichtbereich gescrollt wurde.
Spalten in der DataGrid Spalte können auch so festgelegt werden, dass die Größe nur innerhalb der angegebenen Grenzen automatisch festgelegt wird, oder Spalten können auf eine bestimmte Größe festgelegt werden. In der folgenden Tabelle werden die Eigenschaften aufgezeigt, mit denen die Spaltengrößen gesteuert werden können.
Eigentum | BESCHREIBUNG |
---|---|
DataGrid.MaxColumnWidth | Legt den Grenzwert für alle Spalten in der DataGrid fest. |
DataGridColumn.MaxWidth | Legt die obere Grenze für eine einzelne Spalte fest. Überschreibt DataGrid.MaxColumnWidth. |
DataGrid.MinColumnWidth | Setzt die untere Grenze für alle Spalten in der DataGrid. |
DataGridColumn.MinWidth | Legt die untere Grenze für eine einzelne Spalte fest. Überschreibt DataGrid.MinColumnWidth. |
DataGrid.ColumnWidth | Legt eine spezifische Breite für alle Spalten in der DataGrid fest. |
DataGridColumn.Width | Legt eine bestimmte Breite für eine einzelne Spalte fest. Überschreibt DataGrid.ColumnWidth. |
DataGrid-Spaltenüberschriften
Standardmäßig werden DataGrid Spaltenüberschriften angezeigt. Zum Ausblenden von Spaltenüberschriften muss die HeadersVisibility-Eigenschaft auf DataGridHeadersVisibility.Row oder DataGridHeadersVisibility.None gesetzt werden. Standardmäßig werden Spaltenüberschriften, wenn sie angezeigt werden, automatisch so angepasst, dass sie ihrem Inhalt entsprechen. Die Spaltenüberschriften können durch Festlegen der DataGrid.ColumnHeaderHeight Eigenschaft eine bestimmte Höhe erhalten.
Ändern der Größe mit der Maus
Benutzer können die Größe DataGrid von Zeilen und Spalten ändern, indem Sie die Zeilen- oder Spaltenüberschriftentrennlinien ziehen. Außerdem unterstützt die DataGrid automatische Größenänderung von Zeilen und Spalten durch Doppelklicken auf die Zeilen- oder Spaltenüberschriftentrennlinie. Um zu verhindern, dass ein Benutzer die Größe bestimmter Spalten ändert, legen Sie die Eigenschaft DataGridColumn.CanUserResize für die einzelnen Spalten auf false
fest. Um zu verhindern, dass Benutzer die Größe aller Spalten ändern, legen Sie die DataGrid.CanUserResizeColumns Eigenschaft auf false
. Um zu verhindern, dass Benutzer die Größe aller Zeilen ändern, legen Sie die DataGrid.CanUserResizeRows Eigenschaft auf false
.
Siehe auch
.NET Desktop feedback