| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 |
- using System.Drawing;
- using System.Windows.Forms;
- namespace ToyStoreApp;
- partial class ProductDetailsForm
- {
- private System.ComponentModel.IContainer components = null;
- private Panel PhotoBindingPanel;
- private PictureBox productPictureBox;
- private Label photoPlaceholderLabel;
- private TableLayoutPanel DetailsBindingPanel;
- private Label titleLabel;
- private Label descriptionLabel;
- private Label descriptionValueLabel;
- private Label manufacturerLabel;
- private Label manufacturerValueLabel;
- private Label supplierLabel;
- private Label supplierValueLabel;
- private Label priceLabel;
- private Label priceValueLabel;
- private FlowLayoutPanel pricePanel;
- private Label OriginalPriceBindingLabel;
- private Label unitLabel;
- private Label unitValueLabel;
- private Label stockLabel;
- private Label stockValueLabel;
- private Label articleLabel;
- private Label articleValueLabel;
- private Panel DiscountBindingContainer;
- private Label discountTitleLabel;
- private Label DiscountValueBindingLabel;
- private Label finalPriceTitleLabel;
- private Label finalPriceValueLabel;
- private Button closeButton;
- protected override void Dispose(bool disposing)
- {
- if (disposing)
- {
- productPictureBox?.Image?.Dispose();
- components?.Dispose();
- }
- base.Dispose(disposing);
- }
- private void InitializeComponent()
- {
- PhotoBindingPanel = new Panel();
- productPictureBox = new PictureBox();
- photoPlaceholderLabel = new Label();
- DetailsBindingPanel = new TableLayoutPanel();
- titleLabel = new Label();
- descriptionLabel = new Label();
- descriptionValueLabel = new Label();
- manufacturerLabel = new Label();
- manufacturerValueLabel = new Label();
- supplierLabel = new Label();
- supplierValueLabel = new Label();
- priceLabel = new Label();
- priceValueLabel = new Label();
- OriginalPriceBindingLabel = new Label();
- unitLabel = new Label();
- unitValueLabel = new Label();
- stockLabel = new Label();
- stockValueLabel = new Label();
- articleLabel = new Label();
- articleValueLabel = new Label();
- DiscountBindingContainer = new Panel();
- discountTitleLabel = new Label();
- DiscountValueBindingLabel = new Label();
- finalPriceTitleLabel = new Label();
- finalPriceValueLabel = new Label();
- closeButton = new Button();
- PhotoBindingPanel.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)productPictureBox).BeginInit();
- DetailsBindingPanel.SuspendLayout();
- DiscountBindingContainer.SuspendLayout();
- SuspendLayout();
- PhotoBindingPanel.BorderStyle = BorderStyle.FixedSingle;
- PhotoBindingPanel.Location = new Point(10, 10);
- PhotoBindingPanel.Margin = new Padding(3);
- PhotoBindingPanel.Size = new Size(270, 410);
- PhotoBindingPanel.Controls.Add(productPictureBox);
- PhotoBindingPanel.Controls.Add(photoPlaceholderLabel);
- productPictureBox.Dock = DockStyle.Fill;
- productPictureBox.SizeMode = PictureBoxSizeMode.Zoom;
- photoPlaceholderLabel.AutoSize = false;
- photoPlaceholderLabel.Dock = DockStyle.Fill;
- photoPlaceholderLabel.Font = new Font("Segoe UI", 11F, FontStyle.Bold);
- photoPlaceholderLabel.Text = "Фото";
- photoPlaceholderLabel.TextAlign = ContentAlignment.MiddleCenter;
- DetailsBindingPanel.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single;
- DetailsBindingPanel.ColumnCount = 2;
- DetailsBindingPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 160F));
- DetailsBindingPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
- DetailsBindingPanel.Location = new Point(293, 10);
- DetailsBindingPanel.Margin = new Padding(3);
- DetailsBindingPanel.Size = new Size(450, 410);
- pricePanel = new FlowLayoutPanel();
- pricePanel.FlowDirection = FlowDirection.LeftToRight;
- pricePanel.Dock = DockStyle.Fill;
- pricePanel.AutoSize = true;
- pricePanel.WrapContents = false;
- pricePanel.Padding = new Padding(0);
- pricePanel.Margin = new Padding(0);
- DetailsBindingPanel.Controls.Add(titleLabel, 0, 0);
- DetailsBindingPanel.Controls.Add(descriptionLabel, 0, 1);
- DetailsBindingPanel.Controls.Add(descriptionValueLabel, 1, 1);
- DetailsBindingPanel.Controls.Add(manufacturerLabel, 0, 2);
- DetailsBindingPanel.Controls.Add(manufacturerValueLabel, 1, 2);
- DetailsBindingPanel.Controls.Add(supplierLabel, 0, 3);
- DetailsBindingPanel.Controls.Add(supplierValueLabel, 1, 3);
- DetailsBindingPanel.Controls.Add(priceLabel, 0, 4);
- // Place both price labels into a FlowLayoutPanel so they share the same row
- DetailsBindingPanel.Controls.Add(pricePanel, 1, 4);
- pricePanel.Controls.Add(priceValueLabel);
- pricePanel.Controls.Add(OriginalPriceBindingLabel);
- DetailsBindingPanel.Controls.Add(unitLabel, 0, 5);
- DetailsBindingPanel.Controls.Add(unitValueLabel, 1, 5);
- DetailsBindingPanel.Controls.Add(stockLabel, 0, 6);
- DetailsBindingPanel.Controls.Add(stockValueLabel, 1, 6);
- DetailsBindingPanel.Controls.Add(articleLabel, 0, 7);
- DetailsBindingPanel.Controls.Add(articleValueLabel, 1, 7);
- DetailsBindingPanel.Margin = new Padding(3);
- DetailsBindingPanel.RowCount = 8;
- DetailsBindingPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 54F));
- DetailsBindingPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
- DetailsBindingPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 42F));
- DetailsBindingPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 42F));
- DetailsBindingPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 42F));
- DetailsBindingPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 42F));
- DetailsBindingPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 42F));
- DetailsBindingPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 42F));
-
- titleLabel.AutoSize = true;
- DetailsBindingPanel.SetColumnSpan(titleLabel, 2);
- titleLabel.Dock = DockStyle.Fill;
- titleLabel.Font = new Font("Segoe UI", 12F, FontStyle.Bold);
- titleLabel.Padding = new Padding(8);
- titleLabel.TextAlign = ContentAlignment.MiddleLeft;
- ConfigureCaption(descriptionLabel, "Описание товара:");
- ConfigureValue(descriptionValueLabel);
- descriptionValueLabel.AutoEllipsis = true;
- ConfigureCaption(manufacturerLabel, "Производитель:");
- ConfigureValue(manufacturerValueLabel);
- ConfigureCaption(supplierLabel, "Поставщик:");
- ConfigureValue(supplierValueLabel);
- ConfigureCaption(priceLabel, "Цена:");
- ConfigureValue(priceValueLabel);
- // priceValueLabel is placed inside a FlowLayoutPanel; make it autosize and left-docked so it appears
- // correctly when generated into the FlowLayoutPanel cell.
- priceValueLabel.AutoSize = true;
- priceValueLabel.Dock = DockStyle.Left;
- priceValueLabel.Padding = new Padding(6);
- priceValueLabel.TextAlign = ContentAlignment.MiddleLeft;
- OriginalPriceBindingLabel.AutoSize = true;
- OriginalPriceBindingLabel.Dock = DockStyle.Fill;
- OriginalPriceBindingLabel.Font = new Font("Segoe UI", 9F, FontStyle.Strikeout);
- OriginalPriceBindingLabel.ForeColor = Color.Red;
- OriginalPriceBindingLabel.Padding = new Padding(6);
- OriginalPriceBindingLabel.TextAlign = ContentAlignment.MiddleLeft;
- OriginalPriceBindingLabel.Visible = false;
- ConfigureCaption(unitLabel, "Единица измерения:");
- ConfigureValue(unitValueLabel);
- ConfigureCaption(stockLabel, "Количество на складе:");
- ConfigureValue(stockValueLabel);
- ConfigureCaption(articleLabel, "Артикул:");
- ConfigureValue(articleValueLabel);
- DiscountBindingContainer.BorderStyle = BorderStyle.FixedSingle;
- DiscountBindingContainer.Dock = DockStyle.Right;
- DiscountBindingContainer.Width = 220;
- DiscountBindingContainer.Margin = new Padding(3);
- // Add controls in reverse so Dock=Top produces top-to-bottom visual order
- DiscountBindingContainer.Controls.Add(closeButton);
- DiscountBindingContainer.Controls.Add(finalPriceValueLabel);
- DiscountBindingContainer.Controls.Add(finalPriceTitleLabel);
- DiscountBindingContainer.Controls.Add(DiscountValueBindingLabel);
- DiscountBindingContainer.Controls.Add(discountTitleLabel);
- discountTitleLabel.AutoSize = false;
- discountTitleLabel.Dock = DockStyle.Top;
- discountTitleLabel.Font = new Font("Segoe UI", 11F, FontStyle.Bold);
- discountTitleLabel.Height = 54;
- discountTitleLabel.Text = "Действующая скидка";
- discountTitleLabel.TextAlign = ContentAlignment.MiddleCenter;
- DiscountValueBindingLabel.AutoSize = false;
- DiscountValueBindingLabel.Dock = DockStyle.Top;
- DiscountValueBindingLabel.Font = new Font("Segoe UI", 24F, FontStyle.Bold);
- DiscountValueBindingLabel.ForeColor = Color.Black;
- DiscountValueBindingLabel.Height = 70;
- DiscountValueBindingLabel.TextAlign = ContentAlignment.MiddleCenter;
- finalPriceTitleLabel.AutoSize = false;
- finalPriceTitleLabel.Dock = DockStyle.Top;
- finalPriceTitleLabel.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
- finalPriceTitleLabel.Height = 35;
- finalPriceTitleLabel.Text = "Цена со скидкой";
- finalPriceTitleLabel.TextAlign = ContentAlignment.MiddleCenter;
- finalPriceValueLabel.AutoSize = false;
- finalPriceValueLabel.Dock = DockStyle.Top;
- finalPriceValueLabel.Font = new Font("Segoe UI", 13F, FontStyle.Bold);
- finalPriceValueLabel.Height = 50;
- finalPriceValueLabel.TextAlign = ContentAlignment.MiddleCenter;
- closeButton.Dock = DockStyle.Bottom;
- closeButton.Height = 36;
- closeButton.Margin = new Padding(8);
- closeButton.Text = "Закрыть";
- closeButton.UseVisualStyleBackColor = true;
- closeButton.Click += CloseButton_Click;
- AutoScaleDimensions = new SizeF(8F, 20F);
- AutoScaleMode = AutoScaleMode.Font;
- BackColor = SystemColors.Window;
- ClientSize = new Size(1040, 450);
- Controls.Add(DiscountBindingContainer);
- Controls.Add(DetailsBindingPanel);
- Controls.Add(PhotoBindingPanel);
- MinimumSize = new Size(900, 420);
- StartPosition = FormStartPosition.CenterParent;
- Text = AppearanceSettings.ProductDetailsTitle;
- BackColor = ColorTranslator.FromHtml(AppearanceSettings.MainBackgroundColor);
- PhotoBindingPanel.BackColor = ColorTranslator.FromHtml(AppearanceSettings.MainBackgroundColor);
- DetailsBindingPanel.BackColor = ColorTranslator.FromHtml(AppearanceSettings.MainBackgroundColor);
- DiscountBindingContainer.BackColor = ColorTranslator.FromHtml(AppearanceSettings.SecondaryBackgroundColor);
- Load += ProductDetailsForm_Load;
- PhotoBindingPanel.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)productPictureBox).EndInit();
- DetailsBindingPanel.ResumeLayout(false);
- DetailsBindingPanel.PerformLayout();
- DiscountBindingContainer.ResumeLayout(false);
- ResumeLayout(false);
- }
- private static void ConfigureCaption(Label label, string text)
- {
- label.Dock = DockStyle.Fill;
- label.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
- label.Padding = new Padding(6);
- label.Text = text;
- label.TextAlign = ContentAlignment.MiddleLeft;
- }
- private static void ConfigureValue(Label label)
- {
- label.Dock = DockStyle.Fill;
- label.Padding = new Padding(6);
- label.TextAlign = ContentAlignment.MiddleLeft;
- }
- }
|