This commit is contained in:
2026-04-23 01:22:50 +03:00
parent 02cad0bd2b
commit 7306c20fff

View File

@@ -1,25 +1,61 @@
using Avalonia.Controls; using Avalonia;
using Avalonia.Controls.Shapes; using Avalonia.Controls;
using Avalonia.Layout;
using Avalonia.Media; using Avalonia.Media;
namespace KeyKeeper.Views; namespace KeyKeeper.Views;
public class SettingsWindow : Window public class SettingsWindow : Window
{ {
public SettingsWindow() public SettingsWindow()
{ {
this.Title = "Settings"; // Базовые параметры окна
this.MinWidth = 500; this.Title = "Настройки";
this.MinHeight = 400; this.Width = 450;
this.Width = 400; this.Height = 250;
this.Height = 300; this.MinWidth = 450;
var textBlock = new TextBlock this.MinHeight = 250;
this.WindowStartupLocation = WindowStartupLocation.CenterOwner;
this.Padding = new Thickness(25);
// Контейнер, который выравнивает элементы по вертикали
var mainStack = new StackPanel
{ {
Text = "Settings window", Spacing = 15,
HorizontalAlignment = Avalonia.Layout.HorizontalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Left,
VerticalAlignment = Avalonia.Layout.VerticalAlignment.Center, VerticalAlignment = VerticalAlignment.Top
FontSize = 16
}; };
this.Content = textBlock; // Заголовок окна
var titleText = new TextBlock
{
Text = "Настройки приложения",
FontSize = 20,
FontWeight = FontWeight.Bold,
Margin = new Thickness(0, 0, 0, 10)
};
// Чекбокс (Галочка)
var exitOnCloseCheckBox = new CheckBox
{
Content = "Завершение работы KeyKeeper при закрытии хранилища",
FontSize = 14,
// Подгружаем сохраненное состояние из статического класса
IsChecked = AppSettings.ExitOnRepositoryClose
};
// Событие: когда пользователь щелкает по галочке, данные сразу улетают в AppSettings
exitOnCloseCheckBox.IsCheckedChanged += (s, e) =>
{
AppSettings.ExitOnRepositoryClose = exitOnCloseCheckBox.IsChecked ?? false;
AppSettings.Save();
};
// Добавляем элементы в стек
mainStack.Children.Add(titleText);
mainStack.Children.Add(exitOnCloseCheckBox);
// Назначаем стек основным контентом окна
this.Content = mainStack;
} }
} }