SkyTeam/SettingsPage.xaml.cs aktualisiert
This commit is contained in:
@@ -14,6 +14,9 @@ namespace SkyTeam
|
|||||||
public SettingsPage()
|
public SettingsPage()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
// Quelle: Stack Overflow "How to compare SolidColorBrush in WPF"
|
||||||
|
// Wir lesen die globale Ressource aus und prüfen die Farbe, um sicherzustellen,
|
||||||
|
// dass der Toggle Switch beim Wechseln der Seite den richtigen Zustand (An/Aus) anzeigt
|
||||||
|
|
||||||
var bgBrush = Application.Current.Resources["PageBackground"] as SolidColorBrush;
|
var bgBrush = Application.Current.Resources["PageBackground"] as SolidColorBrush;
|
||||||
if (bgBrush != null && bgBrush.Color == Color.FromRgb(30, 30, 30))
|
if (bgBrush != null && bgBrush.Color == Color.FromRgb(30, 30, 30))
|
||||||
@@ -48,7 +51,10 @@ namespace SkyTeam
|
|||||||
|
|
||||||
DarkModeToggle.Content = "Aus";
|
DarkModeToggle.Content = "Aus";
|
||||||
}
|
}
|
||||||
|
// Quelle: AI Assistant (chat gpt)
|
||||||
|
// Idee: Refactoring / DRY-Prinzip (Don't Repeat Yourself)
|
||||||
|
// Die KI hat vorgeschlagen, das Zuweisen der Application.Current.Resources in eine
|
||||||
|
// separate Hilfsmethode auszulagern, um den Code in den Checked/Unchecked Events sauberer zu halten.
|
||||||
private void SetRes(string key, Color color)
|
private void SetRes(string key, Color color)
|
||||||
{
|
{
|
||||||
Application.Current.Resources[key] = new SolidColorBrush(color);
|
Application.Current.Resources[key] = new SolidColorBrush(color);
|
||||||
@@ -63,6 +69,10 @@ namespace SkyTeam
|
|||||||
using (MySqlConnection conn = new MySqlConnection(DatenbankServices.GetConnection()))
|
using (MySqlConnection conn = new MySqlConnection(DatenbankServices.GetConnection()))
|
||||||
{
|
{
|
||||||
conn.Open();
|
conn.Open();
|
||||||
|
// Quelle: Reddit - r/csharp "Best way to delete user with related data?"
|
||||||
|
// Aufgrund von Foreign Key Constraints in der Datenbank
|
||||||
|
// müssen zwingend erst die Buchungen des Users gelöscht werden, bevor der User
|
||||||
|
// selbst gelöscht werden darf. Sonst wirft die Datenbank einen Fehler
|
||||||
string deleteBookings = "DELETE FROM buchungen WHERE UserId = @uid";
|
string deleteBookings = "DELETE FROM buchungen WHERE UserId = @uid";
|
||||||
MySqlCommand cmd1 = new MySqlCommand(deleteBookings, conn);
|
MySqlCommand cmd1 = new MySqlCommand(deleteBookings, conn);
|
||||||
cmd1.Parameters.AddWithValue("@uid", SessionManager.CurrentUserId);
|
cmd1.Parameters.AddWithValue("@uid", SessionManager.CurrentUserId);
|
||||||
@@ -93,7 +103,11 @@ namespace SkyTeam
|
|||||||
SessionManager.CurrentUserId = 0;
|
SessionManager.CurrentUserId = 0;
|
||||||
NavigationService.Navigate(new LogInPage());
|
NavigationService.Navigate(new LogInPage());
|
||||||
}
|
}
|
||||||
|
// Quelle: Microsoft Learn "FlowDirection Enumeration" & Stack Overflow "WPF RTL Support"
|
||||||
|
// Link : https://learn.microsoft.com/en-us/dotnet/api/system.windows.flowdirection
|
||||||
|
// Wir setzen nicht nur die UI Culture auf die ausgewählte Sprache, sondern
|
||||||
|
// passen für Arabisch ("ar") auch dynamisch die 'FlowDirection' auf Right-To-Left an,
|
||||||
|
// damit das Layout der Seite korrekt gespiegelt wird
|
||||||
private void LanguageComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
private void LanguageComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||||
{
|
{
|
||||||
if (LanguageComboBox.SelectedItem is ComboBoxItem selectedItem)
|
if (LanguageComboBox.SelectedItem is ComboBoxItem selectedItem)
|
||||||
@@ -105,7 +119,9 @@ namespace SkyTeam
|
|||||||
this.FlowDirection = FlowDirection.RightToLeft;
|
this.FlowDirection = FlowDirection.RightToLeft;
|
||||||
else
|
else
|
||||||
this.FlowDirection = FlowDirection.LeftToRight;
|
this.FlowDirection = FlowDirection.LeftToRight;
|
||||||
|
// Quelle: Stack Overflow "How to refresh WPF page after changing culture?"
|
||||||
|
// Durch das erneute Navigieren auf die gleiche Seite (SettingsPage) wird
|
||||||
|
// das UI gezwungen, sich mit der neu gesetzten Sprache und FlowDirection neu zu rendern
|
||||||
NavigationService.Navigate(new SettingsPage());
|
NavigationService.Navigate(new SettingsPage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user