myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: WPF und XAML » Header im DataGrid (in xaml) schräg darstellen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Header im DataGrid (in xaml) schräg darstellen

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
AnnaBauer21 AnnaBauer21 ist weiblich
myCSharp.de-Mitglied

Dabei seit: 27.01.2020
Beiträge: 4


AnnaBauer21 ist offline

Header im DataGrid (in xaml) schräg darstellen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Guten Morgen ihr Lieben smile

Ich bin neu hier und hoffe, dass ich bei meiner ersten Frage alles richtig mache!

Ich möchte eine ähnliche Tabelle wie auf dem Bild im anhang erstellen.

Ist:
- Ich habe im xaml ein DataGrid definiert
- Die Inhalte werden über eine ObservableCollection an ItemsSource gebunden wodurch die Header & die Zeilen automatisch befüllt und erstellt werden

Soll:
- Die Header sollen wie auf dem Bild schräg dargestellt werden
- Die schräge Darstellung soll wie auf dem Bild in die nächste Spalte ragen
- Die Spaltengröße soll entsprechend dem Inhalt oder des Headers sein, jenachdem was größer ist


In einem Style für DataGridColumnHeader habe ich bisschen mit RenderTransform & LayoutTransform herumgprobiert und durch SkewTransform & RotateTransform die Header drehen können
Allerdings ist der Text verzerrt, die Header füllen nicht den gesamten Bereich der Spalte aus, und die Header drehen sich nur innerhalb dem eigenen Spaltenbereich (siehe Beitrag 2).

Das Ziel soll sein, dass durch den Schrägen Headertext die Spalte schmaler wird, da der Inhalt der Zelle meistens sehr kurz ist.


Gibt es evtl. die Möglichkeit für die Header ein Span von 2 zu definieren?

Ich hoffe ihr könnt mir helfen und ein paar Tipps geben!


Liebe Grüße
Anna

AnnaBauer21 hat dieses Bild (verkleinerte Version) angehängt:
image-2020-01-24-09-19-23-078.png
Volle Bildgröße

27.01.2020 10:37 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
AnnaBauer21 AnnaBauer21 ist weiblich
myCSharp.de-Mitglied

Dabei seit: 27.01.2020
Beiträge: 4

Themenstarter Thema begonnen von AnnaBauer21

AnnaBauer21 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Anhang für vorherigen Beitrag

AnnaBauer21 hat dieses Bild (verkleinerte Version) angehängt:
Unbenannt.png
Volle Bildgröße

27.01.2020 10:40 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.379
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Was du eigentlich willst, ist, SkewTransform auf den Header und RotateTransform auf den Header-Text anzuwenden. Evtl. könnte es funktionieren, SkewTransform auf den Header und dann den entgegengesetzten SkewTransform + RotateTransform auf die Schrift anzuwenden.

Alternativ könntest du den gesamten Header oder auch nur die Schrift manuell in ein WriteableBitmap zu rendern, und dieses dann ausgeben. Aber dann müßtest du dich auch um die Klick-Ereignisse selbst kümmern.

Im Endeffekt ist es sicherlich ziemlich aufwendig, da das DataGrid im Framework dieses Feature nicht selbst unterstützt. Wahrscheinlich ist es aber besser, mal zu schauen, ob es nicht ein komerzielles Grid gibt, das diese Darstellungsform bereits unterstützt.
28.01.2020 10:14 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 4 Monate.
Der letzte Beitrag ist älter als 4 Monate.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 28.05.2020 19:24