Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
182.89 Кб
Скачать

Приложение г

Текст программы окна настройки приложения

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Shapes;

namespace Clock2JavaToCS

{

/// <summary>

/// Логика взаимодействия для Window1.xaml

/// </summary>

public partial class OptionWin : Window

{

private Clock clock;

public OptionWin(ref Clock _clock) {

InitializeComponent();

clock = _clock;

chbVisibleDate.IsChecked = (_clock.TBDate.Visibility == Visibility.Visible);

chbVisibleDigitalCl.IsChecked = (_clock.TBTime.Visibility == Visibility.Visible);

chbVisibleSeconds.IsChecked = (_clock.SecondsArrow.Visibility == Visibility.Visible);

editSize.Text = _clock.Radius.ToString();

btnDefault.Click += btnDefault_Click;

btnSave.Click += btnSave_Click;

btnApply.Click += btnSave_Click;

editSize.KeyUp += editSize_KeyUp;

editSize.LostFocus += editSize_LostFocus;

for (int i = 0; i < cmbColor.Items.Count; i++) {

if (_clock.CircleOfDial.Fill.ToString() == (cmbColor.Items[i] as ComboBoxItem).Background.ToString())

cmbColor.SelectedIndex = i;

}

}

void editSize_LostFocus(object sender, RoutedEventArgs e) {

if ((sender as TextBox).Text == "") (sender as TextBox).Text = "0";

}

void editSize_KeyUp(object sender, KeyEventArgs e) {

if ((e.Key == Key.Back)) return;

TextBox _textBox = (sender as TextBox);

string text = "";

for (int i = 0; i < _textBox.Text.Count(); i++)

{

if (Char.IsDigit(_textBox.Text[i]))

{

text += _textBox.Text[i];

}

else

{

e.Handled = true;

}

}

if (text == "") text = "0";

_textBox.Text = text;

_textBox.CaretIndex = text.Count();

_textBox.Tag = 0;

}

void btnSave_Click(object sender, RoutedEventArgs e) {

bool bError = false;

//*******************************************************************

//запоминаем старые настройки, чтобы востановить в случае ошибки

//*******************************************************************

Visibility visibilityDate = clock.TBDate.Visibility;

Visibility visibilityDigitClock = clock.TBTime.Visibility;

Visibility visibilitySeconds = clock.SecondsArrow.Visibility;

Brush ColorClock = clock.CircleOfDial.Fill;

double R = clock.Radius;

//*******************************************************************

try {

double size = 0;

try {

size = Double.Parse(editSize.Text);

}

catch (FormatException) {

MessageBox.Show("Ошибка! Было введено некорректное значение радиуса.");

return;

}

if ((cmbColor.SelectedItem == null)) {

MessageBox.Show("Ошибка! Необходимо выбрать цвет циферблата");

return;

}

//*******************************************************************

//применение настроек

//*******************************************************************

clock.SetSizeClock(size);

if ((bool) (chbVisibleDate.IsChecked)) clock.TBDate.Visibility = Visibility.Visible;

else clock.TBDate.Visibility = Visibility.Hidden;

if ((bool) (chbVisibleDigitalCl.IsChecked)) clock.TBTime.Visibility = Visibility.Visible;

else clock.TBTime.Visibility = Visibility.Hidden;

if ((bool) (chbVisibleSeconds.IsChecked)) clock.SecondsArrow.Visibility = Visibility.Visible;

else clock.SecondsArrow.Visibility = Visibility.Hidden;

clock.SetColor((cmbColor.SelectedItem as ComboBoxItem).Background);

//*******************************************************************

//сохранение настроек в файл

//*******************************************************************

if ((sender as Button).Name == btnSave.Name)

{

clock.clockConfig.SaveConfig(clock);

MessageBox.Show("Сохранеине успешно завершено");

}

}

catch (ClockException E)

{

bError = true;

MessageBox.Show(E.Message);

}

catch (EConfig E)

{

bError = true;

MessageBox.Show(E.Message);

}

catch (Exception E) {

MessageBox.Show("Неизвестная ошибка задания настроек. ("+E.Message+").");

}

finally {

if (bError) {

clock.SetSizeClock(R);

clock.TBDate.Visibility = visibilityDate;

clock.TBTime.Visibility = visibilityDigitClock;

clock.SecondsArrow.Visibility = visibilitySeconds;

clock.CircleOfDial.Fill = ColorClock;

}

}

}

void btnDefault_Click(object sender, RoutedEventArgs e)

{

chbVisibleDate.IsChecked = ( ClockConfig.DefaultVisibleDate == Visibility.Visible);

chbVisibleDigitalCl.IsChecked = (ClockConfig.DefaultVisibleDigClock == Visibility.Visible);

chbVisibleSeconds.IsChecked = (ClockConfig.DefaultVisibleSeconds == Visibility.Visible);

editSize.Text = ClockConfig.defaultR.ToString();

cmbColor.SelectedIndex = 1;

}

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]