Wie kann ich WPF-Datagrid-Spalten von Anfang an automatisch verkleinern, sodass sie alle sichtbar sind?

8

Ich habe ein Datagrid, das eine Spalte (die letzte) hat, die immer angezeigt werden sollte, wenn dafür Platz ist. Leider kann ich das nicht machen und finde nirgends eine Lösung.

Diese WPF-Anwendung ist im Hoch- und Querformat verfügbar ...

Wenn ich die Anwendung im Hochformat starte, möchte ich, dass das Datagrid immer die letzte Spalte anzeigt, aber zunächst mehrere Spalten ausblendet. Wenn Sie jedoch die Größe der Anwendung ändern (indem Sie eine größere Breite erhalten), indem Sie in den Querformatmodus und dann zurück in den Hochformatmodus wechseln, funktioniert sie wie erwartet.

Die meisten Spalten haben ihre Breite entweder auf Auto oder * eingestellt. Nur die letzte Spalte hat eine Mindestbreite von 80 Pixeln. Da ich nicht möchte, dass die Größe geändert wird, sollte es immer angezeigt werden.

Hier sind die Einstellungen des Gitters:

%Vor%

Hier ist die Ausgangssituation im Hochformat

Wenn ich dann die Größe in die Landschaft ändere:

Und schließlich, wenn ich zurück in den Porträtmodus gehe, bekomme ich das gewünschte Ergebnis:

Was kann ich ändern, damit meine Ausgangssituation wie Bild 3 aussieht ... Damit alle Spalten von Anfang an angezeigt werden (ohne dass die Größe geändert werden muss)?

BEARBEITEN: Für Klarheit: Wenn ich Hoch- und Querformat sage, meine ich, dass die Software auf Windows-Tablets verwendet wird, aber das gleiche Problem tritt auch auf normalen Bildschirmen auf. Wenn das Fenster anfänglich klein ist, werden nicht alle Spalten angezeigt, aber wenn ich das Fenster vergrößere und die Größe auf die anfängliche kleine Größe zurücksetze, werden alle Spalten angezeigt.

EDIT 2:

Ich kann das Problem beheben, wenn ich die Breite der ersten Spalte in * anstelle von Auto ändere .... Ich weiß nicht warum, aber ....... Hier ist das Full DataGrid

%Vor%     
user1841243 02.02.2018, 14:08
quelle

1 Antwort

6

Stellen Sie sicher, dass die erste Spalte eine Breite von "*" hat. Bei einer Breite von "Auto" wird die Breite der ersten Spalte auf die volle Breite des Inhalts initialisiert.

    
user1841243 12.02.2018, 07:56
quelle

Tags und Links