From 287df15db899e8e7e42fd96837840f496b5757b4 Mon Sep 17 00:00:00 2001 From: yyc12345 Date: Sat, 11 Apr 2026 14:14:50 +0800 Subject: [PATCH] feat: finish textbox error template and style --- .../Assets/AppIcons/FieldError.svg | 41 ++++++++++++++++++ BallanceTasEditor/BallanceTasEditor/App.xaml | 4 +- .../Frontend/Assets/FieldError.ico | Bin 0 -> 116838 bytes .../Frontend/Styles/TextBoxErrorTemplate.xaml | 40 +++++++++++++++++ .../Frontend/Views/NewFileDialog.xaml | 6 ++- .../Frontend/Views/NewFileDialog.xaml.cs | 10 +++-- 6 files changed, 92 insertions(+), 9 deletions(-) create mode 100644 BallanceTasEditor/Assets/AppIcons/FieldError.svg create mode 100644 BallanceTasEditor/BallanceTasEditor/Frontend/Assets/FieldError.ico create mode 100644 BallanceTasEditor/BallanceTasEditor/Frontend/Styles/TextBoxErrorTemplate.xaml diff --git a/BallanceTasEditor/Assets/AppIcons/FieldError.svg b/BallanceTasEditor/Assets/AppIcons/FieldError.svg new file mode 100644 index 0000000..2bfa93e --- /dev/null +++ b/BallanceTasEditor/Assets/AppIcons/FieldError.svg @@ -0,0 +1,41 @@ + + + + + + + diff --git a/BallanceTasEditor/BallanceTasEditor/App.xaml b/BallanceTasEditor/BallanceTasEditor/App.xaml index abfc769..16b1f43 100644 --- a/BallanceTasEditor/BallanceTasEditor/App.xaml +++ b/BallanceTasEditor/BallanceTasEditor/App.xaml @@ -9,9 +9,7 @@ - - - + diff --git a/BallanceTasEditor/BallanceTasEditor/Frontend/Assets/FieldError.ico b/BallanceTasEditor/BallanceTasEditor/Frontend/Assets/FieldError.ico new file mode 100644 index 0000000000000000000000000000000000000000..bba838ea8d842a6f1a9a53e29320c35c89d7c489 GIT binary patch literal 116838 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
n_?pSNQksFyh2)}EO(&9w% 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 literal 0 HcmV?d00001 diff --git a/BallanceTasEditor/BallanceTasEditor/Frontend/Styles/TextBoxErrorTemplate.xaml b/BallanceTasEditor/BallanceTasEditor/Frontend/Styles/TextBoxErrorTemplate.xaml new file mode 100644 index 0000000..5794434 --- /dev/null +++ b/BallanceTasEditor/BallanceTasEditor/Frontend/Styles/TextBoxErrorTemplate.xaml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BallanceTasEditor/BallanceTasEditor/Frontend/Views/NewFileDialog.xaml b/BallanceTasEditor/BallanceTasEditor/Frontend/Views/NewFileDialog.xaml index 00acedd..46453ef 100644 --- a/BallanceTasEditor/BallanceTasEditor/Frontend/Views/NewFileDialog.xaml +++ b/BallanceTasEditor/BallanceTasEditor/Frontend/Views/NewFileDialog.xaml @@ -47,9 +47,11 @@ + Text="{Binding Count, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnNotifyDataErrors=True}" + Style="{StaticResource TextBoxWithErrorNotifyStyle}"/> + Text="{Binding Fps, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnNotifyDataErrors=True}" + Style="{StaticResource TextBoxWithErrorNotifyStyle}"/> diff --git a/BallanceTasEditor/BallanceTasEditor/Frontend/Views/NewFileDialog.xaml.cs b/BallanceTasEditor/BallanceTasEditor/Frontend/Views/NewFileDialog.xaml.cs index 46f9cb5..66b22c9 100644 --- a/BallanceTasEditor/BallanceTasEditor/Frontend/Views/NewFileDialog.xaml.cs +++ b/BallanceTasEditor/BallanceTasEditor/Frontend/Views/NewFileDialog.xaml.cs @@ -20,12 +20,14 @@ namespace BallanceTasEditor.Frontend.Views { public NewFileDialog() { InitializeComponent(); - ViewModel = new ViewModels.NewFileDialog(); - ViewModel.RequestCloseDialog += ViewModel_RequestCloseDialog; - this.DataContext = ViewModel; + var vm = new ViewModels.NewFileDialog(); + vm.RequestCloseDialog += ViewModel_RequestCloseDialog; + this.DataContext = vm; } - public ViewModels.NewFileDialog ViewModel { get; private set; } + public ViewModels.NewFileDialog ViewModel { + get => (this.DataContext as ViewModels.NewFileDialog).Unwrap(); + } private void ViewModel_RequestCloseDialog(Shared.RequestCloseDialogEventArgs e) { this.DialogResult = e.Result;