From 8c74bc667ddccbd8182832545b2c60a726d9fd6a Mon Sep 17 00:00:00 2001 From: Meik Date: Thu, 13 Nov 2025 18:35:45 +0100 Subject: [PATCH] aktueller stand --- .../Ticket/CloseCaseDialogWithTicket.xaml.cs | 108 +++++++----------- 1 file changed, 41 insertions(+), 67 deletions(-) diff --git a/FasdDesktopUi/Basics/UserControls/Ticket/CloseCaseDialogWithTicket.xaml.cs b/FasdDesktopUi/Basics/UserControls/Ticket/CloseCaseDialogWithTicket.xaml.cs index 0081f12..011f779 100644 --- a/FasdDesktopUi/Basics/UserControls/Ticket/CloseCaseDialogWithTicket.xaml.cs +++ b/FasdDesktopUi/Basics/UserControls/Ticket/CloseCaseDialogWithTicket.xaml.cs @@ -72,6 +72,7 @@ namespace FasdDesktopUi.Basics.UserControls private string activeCategoryTableName = CategoryTableNamePrimary; private static readonly Brush SharedValidationBorderBrush = CreateValidationBrush(); + private static readonly Brush DefaultTextBoxBorderBrush = CreateDefaultTextBoxBorderBrush(); private static Brush CreateValidationBrush() { var brush = new SolidColorBrush(Color.FromRgb(0xF5, 0x7C, 0x73)); @@ -79,6 +80,13 @@ namespace FasdDesktopUi.Basics.UserControls brush.Freeze(); return brush; } + private static Brush CreateDefaultTextBoxBorderBrush() + { + var brush = new SolidColorBrush(Color.FromRgb(0xDE, 0xE2, 0xE6)); + if (brush.CanFreeze) + brush.Freeze(); + return brush; + } private ObservableCollection categoryHierarchy = new ObservableCollection(); private readonly Dictionary categoryLookup = new Dictionary(StringComparer.OrdinalIgnoreCase); @@ -2450,8 +2458,8 @@ namespace FasdDesktopUi.Basics.UserControls private bool CheckTextBlockNotEmpty(TextBlock _textBlock, bool notEmpty) { - var _retVal = false; - Brush _borderCaseNores = (SolidColorBrush)new BrushConverter().ConvertFromString("#DEE2E6"); + var _retVal = false; + Brush _borderCaseNores = DefaultTextBoxBorderBrush; if (notEmpty && string.IsNullOrWhiteSpace(_textBlock.Text)) { _retVal = true; @@ -2464,74 +2472,40 @@ namespace FasdDesktopUi.Basics.UserControls private static void setTextboxErrorState(object sender, bool hasError) { - if (sender is TextBox textBox) - { - // Überprüfe den Inhalt und setze die Hintergrundfarbe entsprechend - if (hasError) - { - // Setze die Hintergrundfarbe auf Rot, um einen Validierungsfehler anzuzeigen - textBox.BorderBrush = SharedValidationBorderBrush; - } - else - { - // Setze die ursprüngliche Hintergrundfarbe zurück, wenn die Validierung erfolgreich ist - textBox.BorderBrush = (SolidColorBrush)new BrushConverter().ConvertFromString("#DEE2E6"); - } + var textBox = sender as TextBox; + if (textBox == null) + return; + + textBox.BorderBrush = hasError + ? SharedValidationBorderBrush + : DefaultTextBoxBorderBrush; + } + + private void UpdateCategoryValidationVisualState(bool hasError) => + UpdateValidationBorderState(CategoryValidationBorder, ref defaultCategoryBorderBrush, ref defaultCategoryBorderThickness, hasError); + + private void UpdateQuickTicketValidationVisualState(bool hasError) => + UpdateValidationBorderState(QuickTicketValidationBorder, ref defaultQuickTicketBorderBrush, ref defaultQuickTicketBorderThickness, hasError); + + private void UpdateTicketStatusValidationVisualState(bool hasError) => + UpdateValidationBorderState(TicketStatusValidationBorder, ref defaultTicketStatusBorderBrush, ref defaultTicketStatusBorderThickness, hasError); + + private void UpdateValidationBorderState(Border border, ref Brush defaultBrush, ref Thickness? defaultThickness, bool hasError) + { + if (border == null) + return; + + if (defaultBrush == null) + { + var borderBrush = border.BorderBrush; + defaultBrush = borderBrush != null ? borderBrush.CloneCurrentValue() : null; } - } - private void UpdateCategoryValidationVisualState(bool hasError) - { - if (CategoryValidationBorder == null) - return; + if (!defaultThickness.HasValue) + defaultThickness = border.BorderThickness; - if (defaultCategoryBorderBrush == null) - defaultCategoryBorderBrush = CategoryValidationBorder.BorderBrush?.CloneCurrentValue(); - if (defaultCategoryBorderThickness == null) - defaultCategoryBorderThickness = CategoryValidationBorder.BorderThickness; - - CategoryValidationBorder.BorderBrush = hasError - ? validationErrorBrush - : defaultCategoryBorderBrush; - CategoryValidationBorder.BorderThickness = hasError - ? new Thickness(1) - : defaultCategoryBorderThickness ?? new Thickness(0); - } - - private void UpdateQuickTicketValidationVisualState(bool hasError) - { - if (QuickTicketValidationBorder == null) - return; - - if (defaultQuickTicketBorderBrush == null) - defaultQuickTicketBorderBrush = QuickTicketValidationBorder.BorderBrush?.CloneCurrentValue(); - if (defaultQuickTicketBorderThickness == null) - defaultQuickTicketBorderThickness = QuickTicketValidationBorder.BorderThickness; - - QuickTicketValidationBorder.BorderBrush = hasError - ? validationErrorBrush - : defaultQuickTicketBorderBrush; - QuickTicketValidationBorder.BorderThickness = hasError - ? new Thickness(1) - : defaultQuickTicketBorderThickness ?? new Thickness(0); - } - - private void UpdateTicketStatusValidationVisualState(bool hasError) - { - if (TicketStatusValidationBorder == null) - return; - - if (defaultTicketStatusBorderBrush == null) - defaultTicketStatusBorderBrush = TicketStatusValidationBorder.BorderBrush?.CloneCurrentValue(); - if (defaultTicketStatusBorderThickness == null) - defaultTicketStatusBorderThickness = TicketStatusValidationBorder.BorderThickness; - - TicketStatusValidationBorder.BorderBrush = hasError - ? validationErrorBrush - : defaultTicketStatusBorderBrush; - TicketStatusValidationBorder.BorderThickness = hasError - ? new Thickness(1) - : defaultTicketStatusBorderThickness ?? new Thickness(0); + border.BorderBrush = hasError ? validationErrorBrush : defaultBrush; + border.BorderThickness = hasError ? new Thickness(1) : defaultThickness ?? new Thickness(0); }