mirror of
https://github.com/KeyKeeperApp/KeyKeeper.git
synced 2026-05-05 22:36:31 +03:00
commit
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user