From c1e832e08dc548a3aa846863bb861dc4cbe51562 Mon Sep 17 00:00:00 2001 From: administrator Date: Tue, 12 May 2026 22:19:07 +0200 Subject: [PATCH 01/28] EPG-Grid: Tooltip mit TextWrapping und 30s ShowDuration --- MainWindow.xaml.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index 74dc07d..bd1c454 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -993,11 +993,17 @@ public partial class MainWindow : Window BorderBrush = new System.Windows.Media.SolidColorBrush(borderColor), BorderThickness = new Thickness(1), CornerRadius = new CornerRadius(3), Cursor = Cursors.Hand, - ToolTip = $"{ev.StartTime:HH:mm}–{ev.EndTime:HH:mm}\n{ev.Title}" + - (string.IsNullOrWhiteSpace(ev.Description) ? "" : $"\n\n{ev.Description}"), Tag = ch, Child = content }; + // Tooltip mit Zeilenumbruch und Beschreibung + var ttText = $"{ev.StartTime:HH:mm}\u2013{ev.EndTime:HH:mm} {ev.Title}"; + if (!string.IsNullOrWhiteSpace(ev.Description)) + ttText += $"\n\n{ev.Description}"; + var tt = new ToolTip { MaxWidth = 420, Content = new TextBlock { Text = ttText, TextWrapping = TextWrapping.Wrap, FontSize = 12 } }; + ToolTipService.SetShowDuration(box, 30000); + box.ToolTip = tt; + box.MouseEnter += (_, _) => box.Background = new System.Windows.Media.SolidColorBrush( isCurrent ? System.Windows.Media.Color.FromRgb(0xB8, 0x21, 0x3A) : System.Windows.Media.Color.FromRgb(0x36, 0x36, 0x36)); From d2eeffd20059fe0dab2732f5cd4d444616b78c70 Mon Sep 17 00:00:00 2001 From: administrator Date: Tue, 12 May 2026 22:30:34 +0200 Subject: [PATCH 02/28] EPG: WebView pausieren bei EPG-Overlay, zurueck zu WebView beim Schliessen --- MainWindow.xaml.cs | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index bd1c454..57d8967 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -761,12 +761,27 @@ public partial class MainWindow : Window private async void BtnEpgGrid_Click(object sender, RoutedEventArgs e) { + // WebView pausieren damit EPG-Overlay sichtbar ist + if (_currentChannel?.Kind == ChannelKind.Web && _webViewReady) + { + await WebView.CoreWebView2.ExecuteScriptAsync( + "document.querySelectorAll('video,audio').forEach(m => m.pause())"); + WebView.Visibility = Visibility.Collapsed; + VideoView.Visibility = Visibility.Visible; + } await ShowEpgOverlayAsync(); } private void BtnCloseEpg_Click(object sender, RoutedEventArgs e) { HideEpgOverlay(); + // Wenn Web-Sender aktiv: WebView wieder anzeigen + if (_currentChannel?.Kind == ChannelKind.Web) + { + VideoView.Visibility = Visibility.Collapsed; + VideoOverlay.Visibility = Visibility.Collapsed; + WebView.Visibility = Visibility.Visible; + } } // ────────── EPG-Overlay (Joyn-Style) ────────── @@ -1108,7 +1123,16 @@ public partial class MainWindow : Window { case Key.F11: ToggleFullscreen(); e.Handled = true; break; case Key.Escape: - if (EpgOverlay.Visibility == Visibility.Visible) HideEpgOverlay(); + if (EpgOverlay.Visibility == Visibility.Visible) + { + HideEpgOverlay(); + if (_currentChannel?.Kind == ChannelKind.Web) + { + VideoView.Visibility = Visibility.Collapsed; + VideoOverlay.Visibility = Visibility.Collapsed; + WebView.Visibility = Visibility.Visible; + } + } else if (_isFullscreen) ToggleFullscreen(); e.Handled = true; break; From 15e7182c22b0036ac309b4dfaa26303eb35abee4 Mon Sep 17 00:00:00 2001 From: administrator Date: Tue, 12 May 2026 22:51:25 +0200 Subject: [PATCH 03/28] EPG-Overlay aus VideoView raus - funktioniert jetzt auch ueber WebView und TV --- MainWindow.xaml | 143 +++++++++++++-------------------------------- MainWindow.xaml.cs | 21 +------ 2 files changed, 43 insertions(+), 121 deletions(-) diff --git a/MainWindow.xaml b/MainWindow.xaml index 9769afd..13714b0 100644 --- a/MainWindow.xaml +++ b/MainWindow.xaml @@ -227,133 +227,74 @@ - + + - - + + HorizontalAlignment="Center" Visibility="Collapsed"/> + TextWrapping="Wrap" TextAlignment="Center" MaxWidth="600"/> - - - - - - - - - - - - - - - -