76 lines
2.2 KiB
C#
76 lines
2.2 KiB
C#
using Avalonia;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Interactivity;
|
|
using Avalonia.Markup.Xaml;
|
|
using Avalonia.VisualTree;
|
|
using System;
|
|
|
|
namespace Project_Periodensystem.View
|
|
{
|
|
public partial class LandingPage : UserControl
|
|
{
|
|
private Button? startButton;
|
|
private DateTime lastClickTime = DateTime.MinValue;
|
|
private const int DEBOUNCE_MS = 500;
|
|
|
|
public LandingPage()
|
|
{
|
|
Logger.Log("=== LandingPage wird initialisiert ===");
|
|
InitializeComponent();
|
|
startButton = this.Find<Button>("StartButton");
|
|
|
|
if (startButton != null)
|
|
{
|
|
Logger.Log("StartButton gefunden und wird initialisiert");
|
|
startButton.Click += StartButton_Click;
|
|
Logger.Log("Click-Handler wurde registriert");
|
|
}
|
|
else
|
|
{
|
|
Logger.Log("FEHLER: StartButton nicht gefunden!");
|
|
}
|
|
}
|
|
|
|
private void InitializeComponent()
|
|
{
|
|
AvaloniaXamlLoader.Load(this);
|
|
}
|
|
|
|
private void StartButton_Click(object? sender, RoutedEventArgs e)
|
|
{
|
|
// Stop event propagation
|
|
e.Handled = true;
|
|
|
|
var now = DateTime.Now;
|
|
// Prüfe ob genug Zeit seit dem letzten Klick vergangen ist
|
|
if ((now - lastClickTime).TotalMilliseconds < DEBOUNCE_MS)
|
|
{
|
|
Logger.Log("Click ignoriert (Debounce)");
|
|
return;
|
|
}
|
|
lastClickTime = now;
|
|
|
|
Logger.Log("StartButton_Click wurde aufgerufen");
|
|
|
|
try
|
|
{
|
|
var mainWindow = this.FindAncestorOfType<MainWindow>();
|
|
if (mainWindow != null)
|
|
{
|
|
Logger.Log("MainWindow gefunden, starte Navigation...");
|
|
mainWindow.ShowPeriodicTable();
|
|
Logger.Log("Navigation ausgeführt");
|
|
}
|
|
else
|
|
{
|
|
Logger.Log("FEHLER: MainWindow nicht gefunden!");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Logger.Log($"FEHLER im Click-Handler: {ex.Message}");
|
|
}
|
|
}
|
|
}
|
|
}
|