Добавлены возможность менять стиль текста

This commit is contained in:
MisterMLiL 2024-10-09 21:04:29 +03:00
parent 916b9dc85c
commit 3e7005158b
8 changed files with 334 additions and 60 deletions

View File

@ -151,6 +151,7 @@
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Sources\FontSettings.cs" />
<EmbeddedResource Include="Controls\CarItemMenuStrip.resx">
<DependentUpon>CarItemMenuStrip.cs</DependentUpon>
</EmbeddedResource>
@ -206,6 +207,7 @@
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="packages\Selenium.WebDriver.4.25.0\build\Selenium.WebDriver.targets" Condition="Exists('packages\Selenium.WebDriver.4.25.0\build\Selenium.WebDriver.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

103
MainForm.Designer.cs generated
View File

@ -38,8 +38,8 @@
this.addCar = new System.Windows.Forms.Button();
this.addParametrLabel = new System.Windows.Forms.Label();
this.parametersPanel = new System.Windows.Forms.Panel();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.файлToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.openFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveAsКакToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -47,11 +47,10 @@
this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.стилиToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.styleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.textToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.colorTextToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.styleTextToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.sizeTextToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.colorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.buttonPanelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.parameterPanelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -61,9 +60,11 @@
this.splitterRigth = new System.Windows.Forms.Splitter();
this.carsPanel = new System.Windows.Forms.Panel();
this.carsItems = new System.Windows.Forms.FlowLayoutPanel();
this.defaultToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.panel1.SuspendLayout();
this.buttonsPanel.SuspendLayout();
this.menuStrip1.SuspendLayout();
this.menuStrip.SuspendLayout();
this.carsPanel.SuspendLayout();
this.SuspendLayout();
//
@ -178,9 +179,11 @@
//
this.addParametrLabel.AutoSize = true;
this.addParametrLabel.Dock = System.Windows.Forms.DockStyle.Top;
this.addParametrLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.addParametrLabel.Location = new System.Drawing.Point(3, 3);
this.addParametrLabel.Name = "addParametrLabel";
this.addParametrLabel.Padding = new System.Windows.Forms.Padding(3);
this.addParametrLabel.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.addParametrLabel.Size = new System.Drawing.Size(66, 19);
this.addParametrLabel.TabIndex = 1;
this.addParametrLabel.Text = "Добавить:";
@ -196,21 +199,21 @@
this.parametersPanel.Size = new System.Drawing.Size(200, 419);
this.parametersPanel.TabIndex = 3;
//
// menuStrip1
// menuStrip
//
this.menuStrip1.BackColor = System.Drawing.Color.White;
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.файлToolStripMenuItem,
this.стилиToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(764, 24);
this.menuStrip1.TabIndex = 5;
this.menuStrip1.Text = "menuStrip1";
this.menuStrip.BackColor = System.Drawing.Color.White;
this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem,
this.styleToolStripMenuItem});
this.menuStrip.Location = new System.Drawing.Point(0, 0);
this.menuStrip.Name = "menuStrip";
this.menuStrip.Size = new System.Drawing.Size(764, 24);
this.menuStrip.TabIndex = 5;
this.menuStrip.Text = "menuStrip1";
//
// файлToolStripMenuItem
// fileToolStripMenuItem
//
this.файлToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.openFileToolStripMenuItem,
this.saveToolStripMenuItem,
this.saveAsКакToolStripMenuItem,
@ -218,9 +221,9 @@
this.newToolStripMenuItem,
this.toolStripSeparator1,
this.exitToolStripMenuItem});
this.файлToolStripMenuItem.Name = "файлToolStripMenuItem";
this.файлToolStripMenuItem.Size = new System.Drawing.Size(48, 20);
this.файлToolStripMenuItem.Text = "Файл";
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(48, 20);
this.fileToolStripMenuItem.Text = "Файл";
//
// openFileToolStripMenuItem
//
@ -241,6 +244,7 @@
this.saveAsКакToolStripMenuItem.Name = "saveAsКакToolStripMenuItem";
this.saveAsКакToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.saveAsКакToolStripMenuItem.Text = "Сохранить как";
this.saveAsКакToolStripMenuItem.Click += new System.EventHandler(this.saveAsКакToolStripMenuItem_Click);
//
// toolStripSeparator2
//
@ -266,42 +270,39 @@
this.exitToolStripMenuItem.Text = "Выйти";
this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
//
// стилиToolStripMenuItem
// styleToolStripMenuItem
//
this.стилиToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.styleToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.textToolStripMenuItem,
this.colorToolStripMenuItem});
this.стилиToolStripMenuItem.Name = "стилиToolStripMenuItem";
this.стилиToolStripMenuItem.Size = new System.Drawing.Size(53, 20);
this.стилиToolStripMenuItem.Text = "Стили";
this.styleToolStripMenuItem.Name = "styleToolStripMenuItem";
this.styleToolStripMenuItem.Size = new System.Drawing.Size(53, 20);
this.styleToolStripMenuItem.Text = "Стили";
//
// textToolStripMenuItem
//
this.textToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.colorTextToolStripMenuItem,
this.styleTextToolStripMenuItem,
this.sizeTextToolStripMenuItem});
this.toolStripSeparator3,
this.defaultToolStripMenuItem});
this.textToolStripMenuItem.Name = "textToolStripMenuItem";
this.textToolStripMenuItem.Size = new System.Drawing.Size(106, 22);
this.textToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.textToolStripMenuItem.Text = "Текст";
//
// colorTextToolStripMenuItem
//
this.colorTextToolStripMenuItem.Name = "colorTextToolStripMenuItem";
this.colorTextToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
this.colorTextToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.colorTextToolStripMenuItem.Text = "Цвет";
this.colorTextToolStripMenuItem.Click += new System.EventHandler(this.colorTextToolStripMenuItem_Click);
//
// styleTextToolStripMenuItem
//
this.styleTextToolStripMenuItem.Name = "styleTextToolStripMenuItem";
this.styleTextToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
this.styleTextToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.styleTextToolStripMenuItem.Text = "Стиль";
//
// sizeTextToolStripMenuItem
//
this.sizeTextToolStripMenuItem.Name = "sizeTextToolStripMenuItem";
this.sizeTextToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
this.sizeTextToolStripMenuItem.Text = "Размер";
this.styleTextToolStripMenuItem.Click += new System.EventHandler(this.styleTextToolStripMenuItem_Click);
//
// colorToolStripMenuItem
//
@ -311,7 +312,7 @@
this.carPanelToolStripMenuItem,
this.top_downPanelToolStripMenuItem});
this.colorToolStripMenuItem.Name = "colorToolStripMenuItem";
this.colorToolStripMenuItem.Size = new System.Drawing.Size(106, 22);
this.colorToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.colorToolStripMenuItem.Text = "Цвета";
//
// buttonPanelToolStripMenuItem
@ -361,7 +362,6 @@
this.carsPanel.Controls.Add(this.carsItems);
this.carsPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.carsPanel.Location = new System.Drawing.Point(121, 44);
this.carsPanel.MinimumSize = new System.Drawing.Size(300, 100);
this.carsPanel.Name = "carsPanel";
this.carsPanel.Size = new System.Drawing.Size(438, 419);
this.carsPanel.TabIndex = 8;
@ -375,6 +375,18 @@
this.carsItems.Size = new System.Drawing.Size(436, 417);
this.carsItems.TabIndex = 0;
//
// defaultToolStripMenuItem
//
this.defaultToolStripMenuItem.Name = "defaultToolStripMenuItem";
this.defaultToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.defaultToolStripMenuItem.Text = "Стандартные";
this.defaultToolStripMenuItem.Click += new System.EventHandler(this.defaultToolStripMenuItem_Click);
//
// toolStripSeparator3
//
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(177, 6);
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -388,8 +400,8 @@
this.Controls.Add(this.buttonsPanel);
this.Controls.Add(this.panel2);
this.Controls.Add(this.panel1);
this.Controls.Add(this.menuStrip1);
this.MainMenuStrip = this.menuStrip1;
this.Controls.Add(this.menuStrip);
this.MainMenuStrip = this.menuStrip;
this.MinimumSize = new System.Drawing.Size(526, 365);
this.Name = "MainForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
@ -400,8 +412,8 @@
this.panel1.PerformLayout();
this.buttonsPanel.ResumeLayout(false);
this.buttonsPanel.PerformLayout();
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.menuStrip.ResumeLayout(false);
this.menuStrip.PerformLayout();
this.carsPanel.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
@ -414,18 +426,17 @@
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Panel buttonsPanel;
private System.Windows.Forms.Panel parametersPanel;
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem файлToolStripMenuItem;
private System.Windows.Forms.MenuStrip menuStrip;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem openFileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem saveAsКакToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem стилиToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem styleToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem textToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem colorTextToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem styleTextToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem sizeTextToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem colorToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem buttonPanelToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem parameterPanelToolStripMenuItem;
@ -443,6 +454,8 @@
private System.Windows.Forms.Button readJsonButton;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
private System.Windows.Forms.ToolStripMenuItem defaultToolStripMenuItem;
}
}

View File

@ -17,6 +17,8 @@ using System.Data.Common;
using GtaVUsersInfo.Forms;
using System.Collections;
using System.Security.Cryptography;
using GtaVUsersInfo.Sources;
using OpenQA.Selenium.DevTools.V127.Page;
namespace GtaVUsersInfo
{
@ -29,10 +31,20 @@ namespace GtaVUsersInfo
private List<ParameterControl> parameters;
private List<CarControl> cars;
private FontSettings fontSettings;
private Font defaultFont;
private Color defaultColor;
private List<Control> dtControls;
public MainForm()
{
InitializeComponent();
defaultFont = new Font("Arial", 11, FontStyle.Regular);
defaultColor = Color.Black;
debugControlsList = new List<Control> { parserButton, readJsonButton };
this.visible(debugControlsList, false);
@ -44,6 +56,22 @@ namespace GtaVUsersInfo
carsItems.ContextMenuStrip = new CarPanelMenuStrip(addNewCar).Menu;
parametersPanel.ContextMenuStrip = new ParameterPanelMenuStrip(addNewParameter).Menu;
dtControls = new List<Control> { parserButton, readJsonButton };
fontSettings = FontSettings.LoadFontSettings();
if (fontSettings != null)
{
fontSettings.FontSettingsEdit(dtControls);
FontSettings.ChangeFontInControls(this, fontSettings);
}
else
{
fontSettings = new FontSettings(defaultFont, defaultColor, dtControls);
FontSettings.ChangeFontInControls(this, fontSettings);
FontSettings.SaveFontSettings(fontSettings);
}
}
private void MainForm_Load(object sender, EventArgs e)
@ -55,6 +83,8 @@ namespace GtaVUsersInfo
{
ParameterPanelCreate();
CarPanelCreate();
FontSettings.ChangeFontInControls(this, fontSettings);
}
private void ParameterPanelCreate()
@ -91,9 +121,7 @@ namespace GtaVUsersInfo
}
catch (FileNotFoundException)
{
string message = $"Файл с автомобилями не найден: {filePath}";
Console.WriteLine(message);
MessageBox.Show(message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
ErrorsShow.ShowErrorMessage($"Файл с автомобилями не найден: {filePath}");
return new List<Car>();
}
catch (JsonException ex)
@ -161,7 +189,7 @@ namespace GtaVUsersInfo
CarControl item = new CarControl(car);
item.MenuStrip = new CarItemMenuStrip(addNewCar, editCar, deleteCar, item).Menu;
cars.Add(item);
CarPanelCreate();
AllPanelCreate();
}
}
@ -231,7 +259,7 @@ namespace GtaVUsersInfo
) == DialogResult.Yes)
{
cars.Remove(carItem);
CarPanelCreate();
AllPanelCreate();
}
}
}
@ -297,11 +325,7 @@ namespace GtaVUsersInfo
#endregion
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveDataToFile();
AllPanelCreate();
}
#region Раскрывающийся список "Файл"
private void openFileToolStripMenuItem_Click(object sender, EventArgs e)
{
@ -315,11 +339,22 @@ namespace GtaVUsersInfo
AllPanelCreate();
}
public void SaveDataToFile()
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveDataToFile("JSON files (*.json)|*.json|All files (*.*)|*.*");
AllPanelCreate();
}
private void saveAsКакToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveDataToFile("All files (*.*)|*.*");
}
public void SaveDataToFile(string filter)
{
Cars_Parameters data = new Cars_Parameters(Car.ConvertToCarList(cars), Parameter.ConvertToParameterList(parameters));
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "JSON files (*.json)|*.json|All files (*.*)|*.*";
saveFileDialog.Filter = filter;
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
@ -352,7 +387,7 @@ namespace GtaVUsersInfo
{
if (ErrorsShow.ShowQuestMessage("Хотите сохранить текущего персонажа?") == DialogResult.Yes)
{
SaveDataToFile();
SaveDataToFile("JSON files (*.json)|*.json|All files (*.*)|*.*");
}
cars = new List<CarControl>();
@ -369,8 +404,54 @@ namespace GtaVUsersInfo
{
if (ErrorsShow.ShowQuestMessage("Хотите сохранить текущего персонажа?") == DialogResult.Yes)
{
SaveDataToFile();
SaveDataToFile("JSON files (*.json)|*.json|All files (*.*)|*.*");
}
}
#endregion
#region Раскрывающийся список "Стили"
private void colorTextToolStripMenuItem_Click(object sender, EventArgs e)
{
using (ColorDialog colorDialog = new ColorDialog())
{
if (colorDialog.ShowDialog() == DialogResult.OK)
{
fontSettings.FontSettingsEdit(colorDialog.Color);
FontSettings.ChangeFontInControls(this, fontSettings);
FontSettings.SaveFontSettings(fontSettings);
}
}
}
private void styleTextToolStripMenuItem_Click(object sender, EventArgs e)
{
using (FontDialog fontDialog = new FontDialog())
{
if (fontDialog.ShowDialog() == DialogResult.OK)
{
fontSettings.FontSettingsEdit(fontDialog.Font);
FontSettings.ChangeFontInControls(this, fontSettings);
FontSettings.SaveFontSettings(fontSettings);
}
}
}
private void defaultToolStripMenuItem_Click(object sender, EventArgs e)
{
fontSettings.FontSettingsEdit(defaultFont);
fontSettings.FontSettingsEdit(defaultColor);
FontSettings.ChangeFontInControls(this, fontSettings);
FontSettings.SaveFontSettings(fontSettings);
}
#endregion
}
}

View File

@ -117,7 +117,7 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

27
Resources.Designer.cs generated
View File

@ -60,6 +60,24 @@ namespace GtaVUsersInfo {
}
}
/// <summary>
/// Ищет локализованную строку, похожую на 204.
/// </summary>
internal static string CarControlHeight {
get {
return ResourceManager.GetString("CarControlHeight", resourceCulture);
}
}
/// <summary>
/// Ищет локализованную строку, похожую на 210.
/// </summary>
internal static string CarControlWidth {
get {
return ResourceManager.GetString("CarControlWidth", resourceCulture);
}
}
/// <summary>
/// Ищет локализованную строку, похожую на data/cars.json.
/// </summary>
@ -77,5 +95,14 @@ namespace GtaVUsersInfo {
return ResourceManager.GetString("carUrl", resourceCulture);
}
}
/// <summary>
/// Ищет локализованную строку, похожую на data/fontsettings.json.
/// </summary>
internal static string fontSettingsJsonPath {
get {
return ResourceManager.GetString("fontSettingsJsonPath", resourceCulture);
}
}
}
}

View File

@ -117,10 +117,19 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="CarControlHeight" xml:space="preserve">
<value>204</value>
</data>
<data name="CarControlWidth" xml:space="preserve">
<value>210</value>
</data>
<data name="carJsonPath" xml:space="preserve">
<value>data/cars.json</value>
</data>
<data name="carUrl" xml:space="preserve">
<value>https://gtacars.net/</value>
</data>
<data name="fontSettingsJsonPath" xml:space="preserve">
<value>data/fontsettings.json</value>
</data>
</root>

BIN
Resources/CarIcon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

142
Sources/FontSettings.cs Normal file
View File

@ -0,0 +1,142 @@
using GtaVUsersInfo.Helpers;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace GtaVUsersInfo.Sources
{
[Serializable]
public class FontSettings
{
public string FontFamily { get; set; }
public float FontSize { get; set; }
public FontStyle FontStyle { get; set; }
public Color FontColor { get; set; }
private static List<Control> DTControls { get; set; }
public FontSettings() { }
public FontSettings(Font font, Color color)
{
FontFamily = font.FontFamily.Name;
FontSize = font.Size;
FontStyle = font.Style;
FontColor = color;
}
public FontSettings(Font font, Color color, List<Control> controls)
{
FontFamily = font.FontFamily.Name;
FontSize = font.Size;
FontStyle = font.Style;
FontColor = color;
DTControls = controls;
}
public void FontSettingsEdit(Font font)
{
FontFamily = font.FontFamily.Name;
FontSize = font.Size;
FontStyle = font.Style;
}
public void FontSettingsEdit(Color color)
{
FontColor = color;
}
public void FontSettingsEdit(List<Control> controls)
{
DTControls = controls;
}
public static void ChangeFontInControls(Control parent, FontSettings fontSettings)
{
Font font = CreateFontFromSettings(fontSettings);
Color color = fontSettings.FontColor;
foreach (Control control in parent.Controls)
{
if (DTControls.Contains(control))
{
continue;
}
if (control.Parent is FlowLayoutPanel)
{
int newWidth = (int)(int.Parse(Resources.CarControlWidth) * (font.Size / 11));
int newHeight = (int)(int.Parse(Resources.CarControlHeight) * (font.Size / 11));
control.Size = new Size(newWidth, newHeight);
}
if (control is TextBox || control is Button)
{
control.Font = font;
control.ForeColor = color;
}
else if (control is Label)
{
control.Font = font.Size >= 8 ? new Font(font.FontFamily, font.Size - 2) : new Font(font.FontFamily, 8);
control.ForeColor = color;
}
else if (control is MenuStrip)
{
control.Font = font.Size >= 8 ? new Font(font.FontFamily, font.Size - 1) : new Font(font.FontFamily, 8);
control.ForeColor = color;
}
if (control.HasChildren)
{
ChangeFontInControls(control, fontSettings);
}
}
}
public static Font CreateFontFromSettings(FontSettings settings)
{
return new Font(settings.FontFamily, settings.FontSize, settings.FontStyle);
}
public static void SaveFontSettings(FontSettings fontSettings)
{
string json = JsonConvert.SerializeObject(fontSettings, Formatting.Indented);
if (!Directory.Exists(Path.GetDirectoryName(Resources.fontSettingsJsonPath)))
{
Directory.CreateDirectory(Path.GetDirectoryName(Resources.fontSettingsJsonPath));
}
File.WriteAllText(Resources.fontSettingsJsonPath, json);
}
public static FontSettings LoadFontSettings()
{
try
{
string json = File.ReadAllText(Resources.fontSettingsJsonPath);
return JsonConvert.DeserializeObject<FontSettings>(json);
}
catch (FileNotFoundException)
{
Console.WriteLine($"Файл со стилями не найден: {Resources.fontSettingsJsonPath}");
return null;
}
catch (JsonException ex)
{
Console.WriteLine($"Ошибка при десериализации JSON стилей: {ex.Message}");
return null;
}
catch (Exception ex)
{
Console.WriteLine($"Произошла неожиданная ошибка при открытии файла со стилями: {ex.Message}");
return null;
}
}
}
}