From 3aead35971986dc3274d868ea0466636b3246ec5 Mon Sep 17 00:00:00 2001 From: Elias Fierke Date: Mon, 10 Mar 2025 10:45:15 +0100 Subject: [PATCH] [fix:] long task-titles went too far behind the edges --- MainWindow.axaml.cs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/MainWindow.axaml.cs b/MainWindow.axaml.cs index fe9061a..a24734d 100644 --- a/MainWindow.axaml.cs +++ b/MainWindow.axaml.cs @@ -816,18 +816,29 @@ namespace PLG_Exam } // Zeile zeichnen - gfx.DrawString(line, font, XBrushes.Black, new XRect(corr_margin, margin + headerHeight + currentHeight, page.Width - margin, lineHeight), XStringFormats.TopLeft); + gfx.DrawString(line, font, XBrushes.Black, new XRect(corr_margin, margin + headerHeight*headerline_count + currentHeight, page.Width - margin, lineHeight), XStringFormats.TopLeft); currentHeight += lineHeight; } } - // Methode zum Zeichnen der Kopfzeile + int headerline_count = 0; private void DrawHeader(XGraphics gfx, ExamTab tab, XFont font, double margin, double headerHeight) { - var headerText = $"Aufgabe {tab.Aufgabennummer}: {tab.Überschrift}"; - gfx.DrawString(headerText, font, XBrushes.Gray, new XRect(margin, margin, gfx.PageSize.Width - margin * 2, headerHeight), XStringFormats.TopLeft); + var maxWidth = gfx.PageSize.Width - margin * 2; // verfügbare Breite + var lines = SplitTextIntoLines($"Aufgabe {tab.Aufgabennummer}: {tab.Überschrift}", maxWidth, font); + + double currentY = margin; + headerline_count=0; + foreach (var line in lines) + { + gfx.DrawString(line, font, XBrushes.Gray, new XRect(margin, currentY, maxWidth, headerHeight), XStringFormats.TopLeft); + currentY += font.Height; + + headerline_count++; + } } + private void DrawName(XGraphics gfx, ExamTab tab, XFont font, double margin, double headerHeight) { var headerText = $"{_currentExam.Name}, {_currentExam.Vorname}";