From 592d446357da46e7c50b18021ab8e08f45812d86 Mon Sep 17 00:00:00 2001 From: Glliza Date: Mon, 19 Feb 2024 20:46:09 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=20=E2=84=961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ProjectAirbus/ProjectAirbus/DirectionType.cs | 28 +++ ProjectAirbus/ProjectAirbus/DrawningAirbus.cs | 235 ++++++++++++++++++ ProjectAirbus/ProjectAirbus/EntityAirbus.cs | 62 +++++ ProjectAirbus/ProjectAirbus/Form1.Designer.cs | 39 --- ProjectAirbus/ProjectAirbus/Form1.cs | 10 - .../ProjectAirbus/FormAirbus.Designer.cs | 132 ++++++++++ ProjectAirbus/ProjectAirbus/FormAirbus.cs | 96 +++++++ .../{Form1.resx => FormAirbus.resx} | 50 ++-- ProjectAirbus/ProjectAirbus/Program.cs | 2 +- .../ProjectAirbus/ProjectAirbus.csproj | 15 ++ .../Properties/Resources.Designer.cs | 103 ++++++++ .../ProjectAirbus/Properties/Resources.resx | 133 ++++++++++ .../free-icon-down-arrow-6364352.png | Bin 0 -> 4210 bytes .../free-icon-left-arrow-10696518.png | Bin 0 -> 4151 bytes .../free-icon-left-arrow-10696518right.png | Bin 0 -> 5876 bytes .../Resources/free-icon-up-arrow-4315713.png | Bin 0 -> 6740 bytes 16 files changed, 830 insertions(+), 75 deletions(-) create mode 100644 ProjectAirbus/ProjectAirbus/DirectionType.cs create mode 100644 ProjectAirbus/ProjectAirbus/DrawningAirbus.cs create mode 100644 ProjectAirbus/ProjectAirbus/EntityAirbus.cs delete mode 100644 ProjectAirbus/ProjectAirbus/Form1.Designer.cs delete mode 100644 ProjectAirbus/ProjectAirbus/Form1.cs create mode 100644 ProjectAirbus/ProjectAirbus/FormAirbus.Designer.cs create mode 100644 ProjectAirbus/ProjectAirbus/FormAirbus.cs rename ProjectAirbus/ProjectAirbus/{Form1.resx => FormAirbus.resx} (93%) create mode 100644 ProjectAirbus/ProjectAirbus/Properties/Resources.Designer.cs create mode 100644 ProjectAirbus/ProjectAirbus/Properties/Resources.resx create mode 100644 ProjectAirbus/ProjectAirbus/Resources/free-icon-down-arrow-6364352.png create mode 100644 ProjectAirbus/ProjectAirbus/Resources/free-icon-left-arrow-10696518.png create mode 100644 ProjectAirbus/ProjectAirbus/Resources/free-icon-left-arrow-10696518right.png create mode 100644 ProjectAirbus/ProjectAirbus/Resources/free-icon-up-arrow-4315713.png diff --git a/ProjectAirbus/ProjectAirbus/DirectionType.cs b/ProjectAirbus/ProjectAirbus/DirectionType.cs new file mode 100644 index 0000000..6a5dcb5 --- /dev/null +++ b/ProjectAirbus/ProjectAirbus/DirectionType.cs @@ -0,0 +1,28 @@ + +namespace ProjectAirbus; + +/// +/// Направление перемещения +/// +public enum DirectionType +{ + /// + /// Вверх + /// + Up = 1, + + /// + /// Вниз + /// + Down = 2, + + /// + /// Влево + /// + Left = 3, + + /// + /// Вправо + /// + Right = 4 +} diff --git a/ProjectAirbus/ProjectAirbus/DrawningAirbus.cs b/ProjectAirbus/ProjectAirbus/DrawningAirbus.cs new file mode 100644 index 0000000..5d5ff2c --- /dev/null +++ b/ProjectAirbus/ProjectAirbus/DrawningAirbus.cs @@ -0,0 +1,235 @@ + +namespace ProjectAirbus; + +/// +/// Класс, отвечающий за прорисовку и перемещение объекта-сущности +/// +public class DrawningAirbus +{ + /// + /// Класс-сущность + /// + public EntityAirbus? EntityAirbus { get; private set; } + + /// + /// Ширина окна + /// + private int? _pictureWidth; + + /// + /// Высота окна + /// + private int? _pictureHeight; + + /// + /// Левая координата прорисовки аэробуса + /// + private int? _startPosX; + + /// + /// Верхняя кооридната прорисовки аэробуса + /// + private int? _startPosY; + + /// + /// Ширина прорисовки аэробуса + /// + private readonly int _drawningAirbusWidth = 133; + + /// + /// Высота прорисовки аэробуса + /// + private readonly int _drawningAirbusHeight = 60; + + /// + /// Инициализация свойств + /// + /// Скорость + /// Вес + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия дополнительного отсека для пассажиров + /// Признак наличия дополнительных двигателей + public void Init(int speed, double weight, Color bodycolor, Color additionalcolor, bool compartment, bool engine) + { + EntityAirbus = new EntityAirbus(); + EntityAirbus.Init(speed, weight, bodycolor, additionalcolor, compartment, engine); + _pictureWidth = null; + _pictureHeight = null; + _startPosX = null; + _startPosY = null; + } + + /// + /// Установка границ поля + /// + /// Ширина поля + /// Высота поля + /// + public bool SetPictureSize(int width, int height) + { + // TODO проверка, что объект "влезает" в размеры поля + // если влезает, сохраняем границы и корректируем позицию объекта,если она была уже установлена + + if (width >= _drawningAirbusWidth || height >= _drawningAirbusHeight) + { + _pictureWidth = width; + _pictureHeight = height; + if (_startPosX != null && _startPosY != null) + { + SetPosition(_startPosX.Value, _startPosY.Value); + } + return true; + + } + return false; + } + /// + /// Установка позиции + /// + /// Координата Х + /// Координата Y + public void SetPosition(int x, int y) + { + if (!_pictureHeight.HasValue || !_pictureWidth.HasValue) + { + return; + } + // TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы + // то надо изменить координаты, чтобы он оставался в этих границах + + if (x < 0) + { + x = 0; + } + else if (x > _pictureWidth - _drawningAirbusWidth) + { + x = _pictureWidth.Value - _drawningAirbusWidth; + } + if (y < 0) + { + y = 0; + } + else if (y > _pictureHeight - _drawningAirbusHeight) + { + y = _pictureHeight.Value - _drawningAirbusHeight; + } + + _startPosX = x; + _startPosY = y; + } + /// + /// Изменение направления перемещения + /// + /// + /// + public bool MoveTransport(DirectionType direction) + { + if (EntityAirbus == null || !_startPosX.HasValue || !_startPosY.HasValue) + { + return false; + } + switch (direction) + { + // Влево + case DirectionType.Left: + if (_startPosX.Value - EntityAirbus.Step > 0) + { + _startPosX -= (int)EntityAirbus.Step; + } + return true; + //Вверх + case DirectionType.Up: + if (_startPosY.Value - EntityAirbus.Step > 0) + { + _startPosY -= (int)EntityAirbus.Step; + } + return true; + //Вправо + case DirectionType.Right: + { + if (_startPosX.Value + _drawningAirbusWidth + EntityAirbus.Step < _pictureWidth) + { + _startPosX += (int)EntityAirbus.Step; + } + } + return true; + //Вниз + case DirectionType.Down: + { + if (_startPosY.Value + _drawningAirbusHeight + EntityAirbus.Step < _pictureHeight) + { + _startPosY += (int)EntityAirbus.Step; + } + } + return true; + default: + return false; + } + } + /// + /// Прорисовка объекта + /// + /// + public void DrawTransport(Graphics g) + { + if (EntityAirbus == null || !_startPosX.HasValue || !_startPosY.HasValue) + { + return; + } + + Pen pen = new(Color.Black); + Brush bodyColorBrush = new SolidBrush(EntityAirbus.BodyColor); + Brush additionalBrush = new SolidBrush(EntityAirbus.AdditionalColor); + + //Дополнительный отсек + Brush brBlue = new SolidBrush(Color.LightBlue); + if (EntityAirbus.Compartment) + { + g.FillEllipse(brBlue, _startPosX.Value + 37, _startPosY.Value + 13, 49, 15); + } + + //корпус + g.FillRectangle(bodyColorBrush, _startPosX.Value, _startPosY.Value + 20, 100, 20); + g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value + 20, 100, 20); + + //крыло + Brush darkBrush = new SolidBrush(Color.Black); + g.FillRectangle(darkBrush, _startPosX.Value + 25, _startPosY.Value + 29, 45, 4); + + //Крыло сзади + g.FillPolygon(bodyColorBrush, new Point[] + { + new Point(_startPosX.Value, _startPosY.Value + 20), new Point(_startPosX.Value, _startPosY.Value), + new Point(_startPosX.Value + 20, _startPosY.Value + 20), }); + + + g.DrawLine(pen, _startPosX.Value, _startPosY.Value + 20, _startPosX.Value, _startPosY.Value); + g.DrawLine(pen, _startPosX.Value, _startPosY.Value, _startPosX.Value + 20, _startPosY.Value + 20); + + //заднее доп крыло + g.FillEllipse(darkBrush, _startPosX.Value - 7, _startPosY.Value + 15, 20, 5); + + //нос самолёта + g.DrawLine(pen, _startPosX.Value + 100, _startPosY.Value + 20, _startPosX.Value + 130, _startPosY.Value + 30); + g.DrawLine(pen, _startPosX.Value + 100, _startPosY.Value + 40, _startPosX.Value + 130, _startPosY.Value + 30); + g.DrawLine(pen, _startPosX.Value + 130, _startPosY.Value + 30, _startPosX.Value + 100, _startPosY.Value + 30); + + //задние шасси + g.DrawLine(pen, _startPosX.Value + 21, _startPosY.Value + 40, _startPosX.Value + 21, _startPosY.Value + 45); + g.FillEllipse(darkBrush, _startPosX.Value + 15, _startPosY.Value + 45, 6, 6); + g.FillEllipse(darkBrush, _startPosX.Value + 21, _startPosY.Value + 45, 6, 6); + + //переднее шасси + g.DrawLine(pen, _startPosX.Value + 90, _startPosY.Value + 40, _startPosX.Value + 90, _startPosY.Value + 45); + g.FillEllipse(darkBrush, _startPosX.Value + 87, _startPosY.Value + 45, 6, 6); + + // Двигатели + if (EntityAirbus.Engine) + { + g.FillRectangle(additionalBrush, _startPosX.Value + 30, _startPosY.Value + 33, 13, 5); + g.FillRectangle(additionalBrush, _startPosX.Value + 45, _startPosY.Value + 33, 15, 5); + } + } +} + diff --git a/ProjectAirbus/ProjectAirbus/EntityAirbus.cs b/ProjectAirbus/ProjectAirbus/EntityAirbus.cs new file mode 100644 index 0000000..a507c30 --- /dev/null +++ b/ProjectAirbus/ProjectAirbus/EntityAirbus.cs @@ -0,0 +1,62 @@ + +namespace ProjectAirbus; + +/// +/// Класс-сущность "Аэробус" +/// +public class EntityAirbus +{ + /// + /// Скорость + /// + public int Speed { get; private set; } + + /// + /// Вес + /// + public double Weight { get; private set; } + + /// + /// Основной цывет + /// + public Color BodyColor { get; private set; } + + /// + /// Дополнительный цвет + /// + public Color AdditionalColor { get; private set; } + + /// + /// Признак наличия дополнительного отсека для пассажиров + /// + public bool Compartment { get; private set; } + + /// + /// Признак наличия дополнительных двигателей + /// + public bool Engine { get; private set; } + + /// + /// Шаг перемещения аэробуса + /// + public double Step => Speed * 100 / Weight; + + /// + /// Инициализация полей объекта-класса аэробуса + /// + /// Скорость + /// Вес + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия дополнительного отсека для пассажиров + /// Признак наличия дополнительных двигателей + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool compartment, bool engine) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + Compartment = compartment; + Engine = engine; + } +} diff --git a/ProjectAirbus/ProjectAirbus/Form1.Designer.cs b/ProjectAirbus/ProjectAirbus/Form1.Designer.cs deleted file mode 100644 index 595d800..0000000 --- a/ProjectAirbus/ProjectAirbus/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace ProjectAirbus -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "Form1"; - } - - #endregion - } -} \ No newline at end of file diff --git a/ProjectAirbus/ProjectAirbus/Form1.cs b/ProjectAirbus/ProjectAirbus/Form1.cs deleted file mode 100644 index 24d20d5..0000000 --- a/ProjectAirbus/ProjectAirbus/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace ProjectAirbus -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/ProjectAirbus/ProjectAirbus/FormAirbus.Designer.cs b/ProjectAirbus/ProjectAirbus/FormAirbus.Designer.cs new file mode 100644 index 0000000..ab25a76 --- /dev/null +++ b/ProjectAirbus/ProjectAirbus/FormAirbus.Designer.cs @@ -0,0 +1,132 @@ +namespace ProjectAirbus +{ + partial class FormAirbus + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + buttonCreateAirbus = new Button(); + ButtonLeft = new Button(); + buttonDown = new Button(); + buttonRight = new Button(); + buttonUp = new Button(); + pictureBoxAirbus = new PictureBox(); + ((System.ComponentModel.ISupportInitialize)pictureBoxAirbus).BeginInit(); + SuspendLayout(); + // + // buttonCreateAirbus + // + buttonCreateAirbus.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreateAirbus.Location = new Point(12, 498); + buttonCreateAirbus.Name = "buttonCreateAirbus"; + buttonCreateAirbus.Size = new Size(75, 23); + buttonCreateAirbus.TabIndex = 1; + buttonCreateAirbus.Text = "Создать"; + buttonCreateAirbus.UseVisualStyleBackColor = true; + buttonCreateAirbus.Click += ButtonCreateAirbus_Click; + // + // ButtonLeft + // + ButtonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + ButtonLeft.BackgroundImage = Properties.Resources.free_icon_left_arrow_10696518; + ButtonLeft.BackgroundImageLayout = ImageLayout.Stretch; + ButtonLeft.Location = new Point(927, 491); + ButtonLeft.Name = "buttonLeft"; + ButtonLeft.Size = new Size(35, 35); + ButtonLeft.TabIndex = 2; + ButtonLeft.UseVisualStyleBackColor = true; + ButtonLeft.Click += ButtonMove_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = Properties.Resources.free_icon_down_arrow_6364352; + buttonDown.BackgroundImageLayout = ImageLayout.Stretch; + buttonDown.Location = new Point(968, 491); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(35, 35); + buttonDown.TabIndex = 3; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += ButtonMove_Click; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = Properties.Resources.free_icon_left_arrow_10696518right; + buttonRight.BackgroundImageLayout = ImageLayout.Stretch; + buttonRight.Location = new Point(1009, 491); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(35, 35); + buttonRight.TabIndex = 4; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += ButtonMove_Click; + // + // buttonUp + // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonUp.BackgroundImage = Properties.Resources.free_icon_up_arrow_4315713; + buttonUp.BackgroundImageLayout = ImageLayout.Stretch; + buttonUp.Location = new Point(968, 450); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(35, 35); + buttonUp.TabIndex = 5; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += ButtonMove_Click; + // + // pictureBoxAirbus + // + pictureBoxAirbus.Dock = DockStyle.Fill; + pictureBoxAirbus.Location = new Point(0, 0); + pictureBoxAirbus.Name = "pictureBoxAirbus"; + pictureBoxAirbus.Size = new Size(1059, 533); + pictureBoxAirbus.TabIndex = 6; + pictureBoxAirbus.TabStop = false; + // + // FormAirbus + // + AutoScaleMode = AutoScaleMode.None; + ClientSize = new Size(1059, 533); + Controls.Add(buttonCreateAirbus); + Controls.Add(buttonRight); + Controls.Add(buttonDown); + Controls.Add(buttonUp); + Controls.Add(ButtonLeft); + Controls.Add(pictureBoxAirbus); + Name = "FormAirbus"; + Text = "Аэробус"; + ((System.ComponentModel.ISupportInitialize)pictureBoxAirbus).EndInit(); + ResumeLayout(false); + } + + #endregion + private Button buttonCreateAirbus; + private Button ButtonLeft; + private Button buttonDown; + private Button buttonRight; + private Button buttonUp; + private PictureBox pictureBoxAirbus; + } +} \ No newline at end of file diff --git a/ProjectAirbus/ProjectAirbus/FormAirbus.cs b/ProjectAirbus/ProjectAirbus/FormAirbus.cs new file mode 100644 index 0000000..b047d21 --- /dev/null +++ b/ProjectAirbus/ProjectAirbus/FormAirbus.cs @@ -0,0 +1,96 @@ + +namespace ProjectAirbus +{ + /// + /// Форма работы с объектом "Аэробус" + /// + public partial class FormAirbus : Form + { + /// + /// Поле-объект для прорисовки объекта + /// + private DrawningAirbus? _drawningAirbus; + + /// + /// Конструктор формы + /// + public FormAirbus() + { + InitializeComponent(); + } + + /// + /// Метод прорисовки формы + /// + private void Draw() + { + if (_drawningAirbus == null) + { + return; + } + + Bitmap bmp = new(pictureBoxAirbus.Width, + pictureBoxAirbus.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawningAirbus.DrawTransport(gr); + pictureBoxAirbus.Image = bmp; + } + + /// + /// Обработка нажатия кнопки "Создать" + /// + /// + /// + private void ButtonCreateAirbus_Click(object sender, EventArgs e) + { + Random random = new(); + _drawningAirbus = new DrawningAirbus(); + _drawningAirbus.Init(random.Next(100, 300), random.Next(1000, 3000), + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), + Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2))); + _drawningAirbus.SetPictureSize(pictureBoxAirbus.Width, pictureBoxAirbus.Height); + _drawningAirbus.SetPosition(random.Next(10, 100), random.Next(10, 100)); + + Draw(); + } + + /// + /// Перемещение объекта по форме (нажатие кнопок навигации) + /// + /// + /// + private void ButtonMove_Click(object sender, EventArgs e) + { + if (_drawningAirbus == null) + { + return; + } + string name = ((Button)sender)?.Name ?? string.Empty; + bool result = false; + switch (name) + { + case "buttonUp": + result = + _drawningAirbus.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + result = + _drawningAirbus.MoveTransport(DirectionType.Down); + break; + case "buttonLeft": + result = + _drawningAirbus.MoveTransport(DirectionType.Left); + break; + case "buttonRight": + result = + _drawningAirbus.MoveTransport(DirectionType.Right); + break; + } + if (result) + { + Draw(); + } + } + } +} diff --git a/ProjectAirbus/ProjectAirbus/Form1.resx b/ProjectAirbus/ProjectAirbus/FormAirbus.resx similarity index 93% rename from ProjectAirbus/ProjectAirbus/Form1.resx rename to ProjectAirbus/ProjectAirbus/FormAirbus.resx index 1af7de1..af32865 100644 --- a/ProjectAirbus/ProjectAirbus/Form1.resx +++ b/ProjectAirbus/ProjectAirbus/FormAirbus.resx @@ -1,17 +1,17 @@  - diff --git a/ProjectAirbus/ProjectAirbus/Program.cs b/ProjectAirbus/ProjectAirbus/Program.cs index a39e589..9d45ae4 100644 --- a/ProjectAirbus/ProjectAirbus/Program.cs +++ b/ProjectAirbus/ProjectAirbus/Program.cs @@ -11,7 +11,7 @@ namespace ProjectAirbus // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); - Application.Run(new Form1()); + Application.Run(new FormAirbus()); } } } \ No newline at end of file diff --git a/ProjectAirbus/ProjectAirbus/ProjectAirbus.csproj b/ProjectAirbus/ProjectAirbus/ProjectAirbus.csproj index e1a0735..244387d 100644 --- a/ProjectAirbus/ProjectAirbus/ProjectAirbus.csproj +++ b/ProjectAirbus/ProjectAirbus/ProjectAirbus.csproj @@ -8,4 +8,19 @@ enable + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file diff --git a/ProjectAirbus/ProjectAirbus/Properties/Resources.Designer.cs b/ProjectAirbus/ProjectAirbus/Properties/Resources.Designer.cs new file mode 100644 index 0000000..d788d58 --- /dev/null +++ b/ProjectAirbus/ProjectAirbus/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace ProjectAirbus.Properties { + using System; + + + /// + /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д. + /// + // Этот класс создан автоматически классом StronglyTypedResourceBuilder + // с помощью такого средства, как ResGen или Visual Studio. + // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen + // с параметром /str или перестройте свой проект VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ProjectAirbus.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Перезаписывает свойство CurrentUICulture текущего потока для всех + /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap free_icon_down_arrow_6364352 { + get { + object obj = ResourceManager.GetObject("free-icon-down-arrow-6364352", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap free_icon_left_arrow_10696518 { + get { + object obj = ResourceManager.GetObject("free-icon-left-arrow-10696518", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap free_icon_left_arrow_10696518right { + get { + object obj = ResourceManager.GetObject("free-icon-left-arrow-10696518right", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap free_icon_up_arrow_4315713 { + get { + object obj = ResourceManager.GetObject("free-icon-up-arrow-4315713", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/ProjectAirbus/ProjectAirbus/Properties/Resources.resx b/ProjectAirbus/ProjectAirbus/Properties/Resources.resx new file mode 100644 index 0000000..86ea500 --- /dev/null +++ b/ProjectAirbus/ProjectAirbus/Properties/Resources.resx @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\free-icon-left-arrow-10696518right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\free-icon-up-arrow-4315713.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\free-icon-left-arrow-10696518.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\free-icon-down-arrow-6364352.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/ProjectAirbus/ProjectAirbus/Resources/free-icon-down-arrow-6364352.png b/ProjectAirbus/ProjectAirbus/Resources/free-icon-down-arrow-6364352.png new file mode 100644 index 0000000000000000000000000000000000000000..18b703116ba30d7ad8a9c473279a0c5350253e74 GIT binary patch literal 4210 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 literal 0 HcmV?d00001 diff --git a/ProjectAirbus/ProjectAirbus/Resources/free-icon-left-arrow-10696518right.png b/ProjectAirbus/ProjectAirbus/Resources/free-icon-left-arrow-10696518right.png new file mode 100644 index 0000000000000000000000000000000000000000..7dc5b2c6cfd72b5648032cf41554957e2103b089 GIT binary patch literal 5876 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 aCiq8Q7QN{^Qq_py@9=)heVn}~&;BR0Z6I_2 literal 0 HcmV?d00001 diff --git a/ProjectAirbus/ProjectAirbus/Resources/free-icon-up-arrow-4315713.png b/ProjectAirbus/ProjectAirbus/Resources/free-icon-up-arrow-4315713.png new file mode 100644 index 0000000000000000000000000000000000000000..b3de9ea6fb78495531abdd8914d3e581bae53abc GIT binary patch literal 6740 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 Lo~^}O7$^P@y!ydt literal 0 HcmV?d00001 -- 2.25.1