Projekt_SS25/Project_Periodensystem.View/MainWindow.axaml.cs

102 lines
2.9 KiB
C#

using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using System;
namespace Project_Periodensystem.View
{
public partial class MainWindow : Window
{
private readonly ContentControl? mainContent;
public MainWindow()
{
InitializeComponent();
try
{
Console.WriteLine("MainWindow wird initialisiert...");
var content = this.Find<ContentControl>("MainContent");
if (content == null)
{
Console.WriteLine("FEHLER: MainContent nicht gefunden!");
throw new Exception("MainContent control not found.");
}
mainContent = content;
Console.WriteLine("Navigation zur Landing Page...");
ShowLanding();
}
catch (Exception ex)
{
Console.WriteLine($"FEHLER in MainWindow Constructor: {ex.Message}");
}
}
public void ShowLanding()
{
try
{
Console.WriteLine("ShowLanding wird aufgerufen...");
if (mainContent != null)
{
mainContent.Content = new LandingPage();
}
else
{
Console.WriteLine("FEHLER: mainContent ist null in ShowLanding!");
}
}
catch (Exception ex)
{
Console.WriteLine($"FEHLER in ShowLanding: {ex.Message}");
}
}
public void ShowPeriodicTable()
{
try
{
Logger.Log("ShowPeriodicTable wird aufgerufen...");
if (mainContent != null)
{
var periodicTablePage = new PeriodicTablePage();
mainContent.Content = periodicTablePage;
Logger.Log("PeriodicTablePage wurde geladen");
}
else
{
Logger.Log("FEHLER: mainContent ist null in ShowPeriodicTable!");
}
}
catch (Exception ex)
{
Logger.Log($"FEHLER in ShowPeriodicTable: {ex.Message}");
}
}
public void ShowAbout()
{
try
{
Console.WriteLine("ShowAbout wird aufgerufen...");
if (mainContent != null)
{
mainContent.Content = new AboutPage();
}
else
{
Console.WriteLine("FEHLER: mainContent ist null in ShowAbout!");
}
}
catch (Exception ex)
{
Console.WriteLine($"FEHLER in ShowAbout: {ex.Message}");
}
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
}
}