diff --git a/ClockWindow.xaml b/ClockWindow.xaml index ef4fe54..810a148 100644 --- a/ClockWindow.xaml +++ b/ClockWindow.xaml @@ -6,11 +6,11 @@ Background="Transparent" ShowInTaskbar="False" IsHitTestVisible="False" - Topmost="True" + Topmost="False" SizeToContent="WidthAndHeight"> + Foreground="White" FontSize="48" FontWeight="Light" + FontFamily="Consolas"/> diff --git a/MainWindow.xaml b/MainWindow.xaml index ef7e74d..a16bdf9 100644 --- a/MainWindow.xaml +++ b/MainWindow.xaml @@ -244,7 +244,7 @@ IsHitTestVisible="False"> + FontFamily="Consolas"/> diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index d07c37f..619792e 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -105,12 +105,14 @@ public partial class MainWindow : Window var time = DateTime.Now.ToString("HH:mm:ss"); TxtClock.Text = time; _clockWindow?.UpdateTime(time); - PositionClockWindow(); + // Nur neu positionieren wenn Hauptfenster bewegt wurde - nicht jede Sekunde }; Loaded += MainWindow_Loaded; Closing += MainWindow_Closing; KeyDown += MainWindow_KeyDown; + LocationChanged += (_, _) => PositionClockWindow(); + SizeChanged += (_, _) => PositionClockWindow(); } private void OnVideoDoubleClick(object sender, MouseButtonEventArgs e) @@ -425,6 +427,14 @@ public partial class MainWindow : Window WebView.Visibility = Visibility.Collapsed; VideoView.Visibility = Visibility.Visible; VideoOverlay.Visibility = Visibility.Visible; + // Uhr: separates Fenster -> WPF-Overlay wenn WebView deaktiviert wird + if (_clockVisible && _clockWindow != null) + { + _clockWindow.Close(); + _clockWindow = null; + TxtClock.Text = DateTime.Now.ToString("HH:mm:ss"); + ClockOverlay.Visibility = Visibility.Visible; + } if (_libVLC == null || _player == null) return; try @@ -463,6 +473,16 @@ public partial class MainWindow : Window RadioCover.Visibility = Visibility.Collapsed; VideoOverlay.Visibility = Visibility.Collapsed; WebView.Visibility = Visibility.Visible; + // Uhr: WPF-Overlay -> separates Fenster wenn WebView aktiv wird + if (_clockVisible && _clockWindow == null) + { + ClockOverlay.Visibility = Visibility.Collapsed; + _clockWindow = new ClockWindow { Owner = this }; + _clockWindow.UpdateTime(DateTime.Now.ToString("HH:mm:ss")); + _clockWindow.Show(); + _clockWindow.Dispatcher.BeginInvoke(() => PositionClockWindow(), + System.Windows.Threading.DispatcherPriority.Render); + } // Titelleiste via ApplySidebarLayout gesetzt TxtEpgNow.Text = "🌐 Browser"; @@ -728,18 +748,20 @@ public partial class MainWindow : Window var time = DateTime.Now.ToString("HH:mm:ss"); if (_clockVisible) { - // WPF-Overlay (fuer TV-Modus innerhalb VideoView) TxtClock.Text = time; - ClockOverlay.Visibility = Visibility.Visible; - - // Separates Fenster (fuer WebView-Modus, schwebt ueber allem) - _clockWindow = new ClockWindow { Owner = this }; - _clockWindow.UpdateTime(time); - _clockWindow.Show(); - // Nach Show() ist ActualWidth bekannt - _clockWindow.Dispatcher.BeginInvoke(() => PositionClockWindow(), - System.Windows.Threading.DispatcherPriority.Render); - + // WPF-Overlay fuer TV/Radio, separates Fenster nur fuer WebView + if (WebView.Visibility == Visibility.Visible) + { + _clockWindow = new ClockWindow { Owner = this }; + _clockWindow.UpdateTime(time); + _clockWindow.Show(); + _clockWindow.Dispatcher.BeginInvoke(() => PositionClockWindow(), + System.Windows.Threading.DispatcherPriority.Render); + } + else + { + ClockOverlay.Visibility = Visibility.Visible; + } _clockTimer.Start(); BtnClock.Foreground = new System.Windows.Media.SolidColorBrush( System.Windows.Media.Color.FromRgb(0x00, 0x78, 0xD4));