//public bool Series_sent { get; set; } /// <summary> /// A grid representing one item of the order. Appears in stack panel in the order Window. /// </summary> /// <param name="id"></param> /// <param name="barcode"></param> /// <param name="name"></param> /// <param name="address"></param> /// <param name="expiration"></param> /// <param name="quant"></param> public InventoryContentItem(int id, int ref_id, string[] barcodes, string name, string address, string series, int global_ptl, List <string> med_series, int mode) { if (mode == 0) { //MessageBox.Show("0"); } else { //MessageBox.Show("1"); } st = Status.idle; PTL_global = global_ptl; Med_series = med_series; Series = series; RefID = ref_id; //_confirmed = false; this.id = id; this.Loaded += (s, ev) => { mybrush = Background as SolidColorBrush; }; width_of = SystemParameters.PrimaryScreenWidth * 0.6; height_of = width_of * 0.75; ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(4, GridUnitType.Star) }); // Number ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(0, GridUnitType.Star) }); // Barcode ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(20, GridUnitType.Star) }); // Name ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(10, GridUnitType.Star) }); // Address ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(8, GridUnitType.Star) }); // Series ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(9, GridUnitType.Star) }); // Quantity collected ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(5, GridUnitType.Star) }); // + ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(5, GridUnitType.Star) }); // OK //RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); // Main row //RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); // Expandable row with confirm button // Just a border around the whole item Border frame = new Border() { BorderBrush = Brushes.Black }; if (id == 1) { frame.BorderThickness = new Thickness(1); } else { frame.BorderThickness = new Thickness(1, 0, 1, 1); } Grid.SetColumn(frame, 0); Grid.SetColumnSpan(frame, 9); /*Grid.SetRow(frame, 0); * Grid.SetRowSpan(frame, 2);*/ Children.Add(frame); // shows item id TextBlock id_block = new TextBlock() { Margin = new Thickness(2, 2, 5, 2), FontSize = 18, Text = id.ToString(), HorizontalAlignment = HorizontalAlignment.Center }; SetColumn(id_block, 0); //SetRow(id_block, 0); Children.Add(id_block); // shows item barcode TextBlock barcode_block = new TextBlock() { Margin = new Thickness(2, 2, 5, 2), FontSize = 18, Text = barcodes[0] }; SetColumn(barcode_block, 1); //SetRow(barcode_block, 0); Children.Add(barcode_block); // shows item name TextBlock name_block = new TextBlock() { Margin = new Thickness(2, 2, 5, 2), FontSize = 18, Text = name }; SetColumn(name_block, 2); //SetRow(name_block, 0); Children.Add(name_block); // shows item address TextBlock address_block = new TextBlock() { Margin = new Thickness(2, 2, 4, 2), FontSize = 18, HorizontalAlignment = HorizontalAlignment.Center, Text = address }; SetColumn(address_block, 3); //SetRow(address_block, 0); Children.Add(address_block); //show item series if (mode == 1) { TextBlock exp_block = new TextBlock() { Margin = new Thickness(2, 2, 4, 2), FontSize = 18, HorizontalAlignment = HorizontalAlignment.Center, Text = series }; SetColumn(exp_block, 4); //SetRow(exp_block, 0); Children.Add(exp_block); } if (mode == 0) { //Additional series additional_series = new ComboBox(); for (int i = 0; i < Med_series.Count; i++) { if (Series != Med_series[i]) { additional_series.Items.Add(Med_series[i]); //!!! } } SetColumn(additional_series, 4); //SetRow(exp_block, 0); Children.Add(additional_series); } { // a grid containing 3 columns for +/- buttons and the actual quanity collected Grid quan = new Grid(); quan.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }); quan.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(2, GridUnitType.Star) }); quan.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }); SetColumn(quan, 5); //SetRow(quan, 0); Children.Add(quan); // minus(-) button int rad = 10; minus = new Border() { CornerRadius = new CornerRadius(rad), Width = rad * 2, Height = rad * 2, BorderThickness = new Thickness(1), BorderBrush = Brushes.Black, HorizontalAlignment = HorizontalAlignment.Center, Child = new TextBlock() { Text = "-", TextAlignment = TextAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }, Background = Brushes.White }; minus.MouseEnter += (se, ev) => { (se as Border).Background = Brushes.LightBlue; }; minus.MouseLeave += (se, ev) => { (se as Border).Background = Brushes.White; }; minus.MouseDown += (se, ev) => { if (quant_coll > 0) { QuantityCollected -= 1; } }; SetColumn(minus, 0); quan.Children.Add(minus); // the actual quanityt text block quantityText = new TextBox() { FontSize = 18, HorizontalAlignment = HorizontalAlignment.Center, Margin = new Thickness(3) }; quantityText.TextChanged += (se, ev) => { string s = ""; for (int i = 0; i < (se as TextBox).Text.Length; i++) { if (char.IsDigit((se as TextBox).Text[i])) { s += (se as TextBox).Text[i]; } } if (s.Length > 0) { quant_coll = Convert.ToInt32(s); } if (s != (se as TextBox).Text) { (se as TextBox).Text = s; } }; SetColumn(quantityText, 1); quan.Children.Add(quantityText); // plus(+) button plus = new Border() { CornerRadius = new CornerRadius(rad), Width = rad * 2, Height = rad * 2, BorderThickness = new Thickness(1), BorderBrush = Brushes.Black, HorizontalAlignment = HorizontalAlignment.Center, Child = new TextBlock() { Text = "+", TextAlignment = TextAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }, Background = Brushes.White }; plus.MouseEnter += (se, ev) => { (se as Border).Background = Brushes.LightBlue; }; plus.MouseLeave += (se, ev) => { (se as Border).Background = Brushes.White; }; plus.MouseDown += (se, ev) => { QuantityCollected += 1; }; SetColumn(plus, 2); quan.Children.Add(plus); } { TextBlock txt = new TextBlock() { FontSize = 16, Margin = new Thickness(4, 0, 4, 0) }; txt.Text = "+"; Button btn1 = new Button() { Content = txt, Margin = new Thickness(5, 3, 5, 2) }; btn1.Click += (se, ev) => { ShowButtonPressed1?.Invoke(this, new EventArgs()); }; SetColumn(btn1, 6); Children.Add(btn1); } { TextBlock txt = new TextBlock() { FontSize = 16, Margin = new Thickness(4, 0, 4, 0) }; txt.Text = "OK"; Button btn = new Button() { Content = txt, Margin = new Thickness(5, 3, 5, 2) }; btn.Click += (se, ev) => { ShowButtonPressed?.Invoke(this, new EventArgs()); }; SetColumn(btn, 7); Children.Add(btn); } /*{ * // click on the grid events * UIElement source = null; * bool captured = false; * * MouseDown += (se, ev) => * { * source = (UIElement)se; * ev.MouseDevice.Capture(source); * captured = true; * }; * * MouseUp += (se, ev) => * { * if (captured) * { * ev.MouseDevice.Capture(null); * captured = false; * * ExpandMe?.Invoke(this, new EventArgs()); * } * }; * }*/ }
/// <summary> /// A grid representing one item of the order. Appears in stack panel in the order Window. /// </summary> /// <param name="id"></param> /// <param name="barcode"></param> /// <param name="name"></param> /// <param name="address"></param> /// <param name="expiration"></param> /// <param name="quant"></param> public ReplenishContentItem(int id, int ref_id, string[] barcodes, string name, string address, string series, int quant, int global_ptl) { RefID = ref_id; _confirmed = false; ser_confirmed = false; cancel = false; PTL_global = global_ptl; this.id = id; act_quant = quant; this.Loaded += (s, ev) => { mybrush = Background as SolidColorBrush; }; width_of = SystemParameters.PrimaryScreenWidth * 0.6; height_of = width_of * 0.75; ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(4, GridUnitType.Star) }); // Number ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(0, GridUnitType.Star) }); // Barcode ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(25, GridUnitType.Star) }); // Name ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(15, GridUnitType.Star) }); // Address ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(15, GridUnitType.Star) }); // Quantity ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(15, GridUnitType.Star) }); // Quantity ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(15, GridUnitType.Star) }); // Quantity replenished ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(5, GridUnitType.Star) }); // OK button RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); // Main row RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); // Expandable row with confirm button // Just a border around the whole item Border frame = new Border() { BorderBrush = Brushes.Black }; if (id == 1) { frame.BorderThickness = new Thickness(1); } else { frame.BorderThickness = new Thickness(1, 0, 1, 1); } Grid.SetColumn(frame, 0); Grid.SetColumnSpan(frame, 8); Grid.SetRow(frame, 0); Grid.SetRowSpan(frame, 2); Children.Add(frame); // shows item id TextBlock id_block = new TextBlock() { Margin = new Thickness(2, 2, 5, 2), FontSize = 18, Text = id.ToString(), HorizontalAlignment = HorizontalAlignment.Center }; SetColumn(id_block, 0); SetRow(id_block, 0); Children.Add(id_block); // shows item barcode TextBlock barcode_block = new TextBlock() { Margin = new Thickness(2, 2, 5, 2), FontSize = 18, Text = barcodes[0] }; SetColumn(barcode_block, 1); SetRow(barcode_block, 0); Children.Add(barcode_block); // shows item name TextBlock name_block = new TextBlock() { Margin = new Thickness(2, 2, 5, 2), FontSize = 18, Text = name }; SetColumn(name_block, 2); SetRow(name_block, 0); Children.Add(name_block); // shows item address TextBlock address_block = new TextBlock() { Margin = new Thickness(2, 2, 4, 2), FontSize = 18, HorizontalAlignment = HorizontalAlignment.Center, Text = address }; SetColumn(address_block, 3); SetRow(address_block, 0); Children.Add(address_block); //shows item expiratio date /*TextBlock exp_block = new TextBlock() * { * Margin = new Thickness(2, 2, 4, 2), * FontSize = 18, * HorizontalAlignment = HorizontalAlignment.Right, * Text = expiration * }; * SetColumn(exp_block, 4); * SetRow(exp_block, 0); * Children.Add(exp_block);*/ TextBlock series_block = new TextBlock() { Margin = new Thickness(2, 2, 4, 2), FontSize = 18, HorizontalAlignment = HorizontalAlignment.Center, Text = series }; SetColumn(series_block, 4); SetRow(series_block, 0); Children.Add(series_block); // shows actual quantity of an item TextBlock quant_block = new TextBlock() { Margin = new Thickness(2, 2, 4, 2), FontSize = 18, HorizontalAlignment = HorizontalAlignment.Center, Text = quant.ToString() }; SetColumn(quant_block, 5); SetRow(quant_block, 0); Children.Add(quant_block); { // a grid containing 3 columns for +/- buttons and the actual quanity collected Grid quan = new Grid(); quan.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }); quan.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(2, GridUnitType.Star) }); quan.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }); SetColumn(quan, 6); SetRow(quan, 0); Children.Add(quan); // minus(-) button int rad = 10; minus = new Border() { CornerRadius = new CornerRadius(rad), Width = rad * 2, Height = rad * 2, BorderThickness = new Thickness(1), BorderBrush = Brushes.Black, HorizontalAlignment = HorizontalAlignment.Center, Child = new TextBlock() { Text = "-", TextAlignment = TextAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }, Background = Brushes.White }; minus.MouseEnter += (se, ev) => { (se as Border).Background = Brushes.LightBlue; }; minus.MouseLeave += (se, ev) => { (se as Border).Background = Brushes.White; }; /**min = new Button() * { * Content = "-" * };*/ minus.MouseDown += (se, ev) => { if (quant_coll > 0) { QuantityReplenished -= 1; } }; SetColumn(minus, 0); quan.Children.Add(minus); // the replenished quantity text block quantityText = new TextBox() { FontSize = 18, HorizontalAlignment = HorizontalAlignment.Center }; quantityText.TextChanged += quantityText_TextChanged; SetColumn(quantityText, 1); quan.Children.Add(quantityText); // plus(+) button plus = new Border() { CornerRadius = new CornerRadius(rad), Width = rad * 2, Height = rad * 2, BorderThickness = new Thickness(1), BorderBrush = Brushes.Black, HorizontalAlignment = HorizontalAlignment.Center, Child = new TextBlock() { Text = "+", TextAlignment = TextAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }, Background = Brushes.White }; plus.MouseEnter += (se, ev) => { (se as Border).Background = Brushes.LightBlue; }; plus.MouseLeave += (se, ev) => { (se as Border).Background = Brushes.White; }; /*pl = new Button() * { * Content = "+" * };*/ plus.MouseDown += (se, ev) => { if (quant_coll < act_quant) { QuantityReplenished += 1; } }; SetColumn(plus, 2); quan.Children.Add(plus); } TextBlock txt = new TextBlock() { FontSize = 16, Margin = new Thickness(4, 0, 4, 0), Text = "OK" }; Button btn = new Button() { Content = txt, Margin = new Thickness(5, 3, 5, 2) }; btn.Click += (se, ev) => { ShowButtonPressed?.Invoke(this, new EventArgs()); }; SetColumn(btn, 7); SetRow(btn, 0); Children.Add(btn); { // A stack panel on the second expandable row, containing confirm button sp = new StackPanel() { Orientation = Orientation.Horizontal, HorizontalAlignment = HorizontalAlignment.Right, Height = 0 }; SetColumn(sp, 0); SetColumnSpan(sp, 7); SetRow(sp, 1); Children.Add(sp); TextBlock potp = new TextBlock() { FontSize = 16, Margin = new Thickness(4, 0, 4, 0), Text = "Подпитка: ", VerticalAlignment = VerticalAlignment.Center }; sp.Children.Add(potp); int rad = 10; minus2 = new Border() { CornerRadius = new CornerRadius(rad), Width = rad * 2, Height = rad * 2, BorderThickness = new Thickness(1), BorderBrush = Brushes.Black, HorizontalAlignment = HorizontalAlignment.Center, Child = new TextBlock() { Text = "-", TextAlignment = TextAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }, Background = Brushes.White, Margin = new Thickness(5, 0, 5, 0) }; minus2.MouseEnter += (se, ev) => { (se as Border).Background = Brushes.LightBlue; }; minus2.MouseLeave += (se, ev) => { (se as Border).Background = Brushes.White; }; minus2.MouseDown += (se, ev) => { if (QuantityPodpitka > 0) { QuantityPodpitka -= 1; } }; sp.Children.Add(minus2); // the actual quanityt text block quantityText2 = new TextBlock() { FontSize = 18, HorizontalAlignment = HorizontalAlignment.Center, Margin = new Thickness(5, 0, 5, 0), VerticalAlignment = VerticalAlignment.Center }; SetColumn(quantityText2, 1); sp.Children.Add(quantityText2); // plus(+) button plus2 = new Border() { CornerRadius = new CornerRadius(rad), Width = rad * 2, Height = rad * 2, BorderThickness = new Thickness(1), BorderBrush = Brushes.Black, HorizontalAlignment = HorizontalAlignment.Center, Child = new TextBlock() { Text = "+", TextAlignment = TextAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }, Background = Brushes.White, Margin = new Thickness(5, 0, 5, 0) }; plus2.MouseEnter += (se, ev) => { (se as Border).Background = Brushes.LightBlue; }; plus2.MouseLeave += (se, ev) => { (se as Border).Background = Brushes.White; }; /*pl = new Button() * { * Content = "+" * };*/ plus2.MouseDown += (se, ev) => { if ((quant_coll + QuantityPodpitka) < act_quant) { QuantityPodpitka += 1; } }; sp.Children.Add(plus2); Button conf = new Button() { Content = "OK", Margin = new Thickness(5) }; conf.Click += (se, ev) => { ConfirmButtonPressed?.Invoke(this, new EventArgs()); }; sp.Children.Add(conf); Button canc = new Button() { Content = "Отмена", Margin = new Thickness(5) }; canc.Click += (se, ev) => { CancelButtonPressed?.Invoke(this, new EventArgs()); Expanded = false; }; sp.Children.Add(canc); } }
//public int Quantity { get; set; } //public bool Series_sent { get; set; } /// <summary> /// A grid representing one item of the order. Appears in stack panel in the order Window. /// </summary> /// <param name="id"></param> /// <param name="barcode"></param> /// <param name="name"></param> /// <param name="address"></param> /// <param name="expiration"></param> /// <param name="quant"></param> public PodpitkaContentItem(int id, int ref_id, string[] barcodes, string name, string address, int quantity, int global_ptl) { _confirmed = false; SentToPTL = false; PTL_global = global_ptl; Quantity = quantity; RefID = ref_id; this.id = id; this.Loaded += (s, ev) => { mybrush = Background as SolidColorBrush; }; width_of = SystemParameters.PrimaryScreenWidth * 0.6; height_of = width_of * 0.75; ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(4, GridUnitType.Star) }); // Number ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(0, GridUnitType.Star) }); // Barcode ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(25, GridUnitType.Star) }); // Name ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(15, GridUnitType.Star) }); // Address ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(15, GridUnitType.Star) }); // Quantity ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(15, GridUnitType.Star) }); // Quantity collected ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(5, GridUnitType.Star) }); // Just a border around the whole item Border frame = new Border() { BorderBrush = Brushes.Black }; if (id == 1) { frame.BorderThickness = new Thickness(1); } else { frame.BorderThickness = new Thickness(1, 0, 1, 1); } Grid.SetColumn(frame, 0); Grid.SetColumnSpan(frame, 7); Children.Add(frame); // shows item id TextBlock id_block = new TextBlock() { Margin = new Thickness(2, 2, 5, 2), FontSize = 18, Text = id.ToString() }; SetColumn(id_block, 0); Children.Add(id_block); // shows item barcode TextBlock barcode_block = new TextBlock() { Margin = new Thickness(2, 2, 5, 2), FontSize = 18, Text = barcodes[0] }; SetColumn(barcode_block, 1); Children.Add(barcode_block); // shows item name TextBlock name_block = new TextBlock() { Margin = new Thickness(2, 2, 5, 2), FontSize = 18, Text = name }; SetColumn(name_block, 2); Children.Add(name_block); // shows item address TextBlock address_block = new TextBlock() { Margin = new Thickness(2, 2, 4, 2), FontSize = 18, HorizontalAlignment = HorizontalAlignment.Right, Text = address }; SetColumn(address_block, 3); Children.Add(address_block); //shows item expiratio date TextBlock exp_block = new TextBlock() { Margin = new Thickness(2, 2, 4, 2), FontSize = 18, HorizontalAlignment = HorizontalAlignment.Right, Text = Quantity.ToString() }; SetColumn(exp_block, 4); Children.Add(exp_block); { // a grid containing 3 columns for +/- buttons and the actual quanity collected Grid quan = new Grid(); quan.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }); quan.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(2, GridUnitType.Star) }); quan.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }); SetColumn(quan, 5); Children.Add(quan); // minus(-) button int rad = 10; minus = new Border() { CornerRadius = new CornerRadius(rad), Width = rad * 2, Height = rad * 2, BorderThickness = new Thickness(1), BorderBrush = Brushes.Black, HorizontalAlignment = HorizontalAlignment.Center, Child = new TextBlock() { Text = "-", TextAlignment = TextAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }, Background = Brushes.White }; minus.MouseEnter += (se, ev) => { (se as Border).Background = Brushes.LightBlue; }; minus.MouseLeave += (se, ev) => { (se as Border).Background = Brushes.White; }; minus.MouseDown += (se, ev) => { if (quant_coll > 0) { QuantityCollected -= 1; } }; SetColumn(minus, 0); quan.Children.Add(minus); // the actual quanityt text block quantityText = new TextBlock() { FontSize = 18, HorizontalAlignment = HorizontalAlignment.Center }; SetColumn(quantityText, 1); quan.Children.Add(quantityText); // plus(+) button plus = new Border() { CornerRadius = new CornerRadius(rad), Width = rad * 2, Height = rad * 2, BorderThickness = new Thickness(1), BorderBrush = Brushes.Black, HorizontalAlignment = HorizontalAlignment.Center, Child = new TextBlock() { Text = "+", TextAlignment = TextAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }, Background = Brushes.White }; plus.MouseEnter += (se, ev) => { (se as Border).Background = Brushes.LightBlue; }; plus.MouseLeave += (se, ev) => { (se as Border).Background = Brushes.White; }; plus.MouseDown += (se, ev) => { if (quant_coll < Quantity) { QuantityCollected += 1; } }; SetColumn(plus, 2); quan.Children.Add(plus); } { TextBlock txt = new TextBlock() { FontSize = 16, Margin = new Thickness(4, 0, 4, 0) }; txt.Text = "OK"; Button btn = new Button() { Content = txt, Margin = new Thickness(5, 3, 5, 2) }; btn.Click += (se, ev) => { ShowButtonPressed?.Invoke(this, new EventArgs()); }; SetColumn(btn, 6); Children.Add(btn); } }
/// <summary> /// A grid representing one item of the order. Appears in stack panel in the order Window. /// </summary> /// <param name="id"></param> /// <param name="barcode"></param> /// <param name="name"></param> /// <param name="address"></param> /// <param name="expiration"></param> /// <param name="quant"></param> public OrderContentItem(int id, int ref_id, string[] barcodes, string name, string address, string expiration, int quant, int global_ptl) { RefID = ref_id; PTL_global = global_ptl; //_confirmed = false; this.id = id; act_quant = quant; this.Loaded += (s, ev) => { mybrush = Background as SolidColorBrush; }; ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(4, GridUnitType.Star) }); // Number ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(0, GridUnitType.Star) }); // Barcode ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(25, GridUnitType.Star) }); // Name ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(15, GridUnitType.Star) }); // Address ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(15, GridUnitType.Star) }); // Expiration Date ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(15, GridUnitType.Star) }); // Quantity ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(15, GridUnitType.Star) }); // Quantity collected ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(5, GridUnitType.Star) }); //RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); // Main row //RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); // Expandable row with confirm button // Just a border around the whole item Border frame = new Border() { BorderBrush = Brushes.Gray, }; frame.BorderThickness = new Thickness(0, 0, 1, 1); Grid.SetColumn(frame, 0); Grid.SetColumnSpan(frame, 8); /*Grid.SetRow(frame, 0); * Grid.SetRowSpan(frame, 2);*/ Children.Add(frame); for (int i = 0; i < 7; i++) { Border div = new Border() { BorderBrush = Brushes.Gray, BorderThickness = new Thickness(0, 0, 1, 0) }; Grid.SetColumn(div, i); Children.Add(div); } // shows item id TextBlock id_block = new TextBlock() { Margin = new Thickness(2, 2, 5, 2), FontSize = 16, Text = id.ToString(), HorizontalAlignment = HorizontalAlignment.Center }; SetColumn(id_block, 0); //SetRow(id_block, 0); Children.Add(id_block); // shows item barcode TextBlock barcode_block = new TextBlock() { Margin = new Thickness(2, 2, 5, 2), FontSize = 16, Text = barcodes[0] }; SetColumn(barcode_block, 1); //SetRow(barcode_block, 0); Children.Add(barcode_block); // shows item name TextBlock name_block = new TextBlock() { Margin = new Thickness(5, 2, 5, 2), FontSize = 16, // шрифт названий препаратов в "начать сборку" после добавления корзины Text = name }; SetColumn(name_block, 2); //SetRow(name_block, 0); Children.Add(name_block); name_block.MouseEnter += new System.Windows.Input.MouseEventHandler(Name_block_MouseEnter); name_block.MouseLeave += new System.Windows.Input.MouseEventHandler(Name_block_MouseLeave); // shows item address TextBlock address_block = new TextBlock() { Margin = new Thickness(2, 2, 4, 2), FontSize = 16, // шрифт адрессов хранения в "начать сборку" после добавления корзины HorizontalAlignment = HorizontalAlignment.Center, Text = address }; SetColumn(address_block, 3); //SetRow(address_block, 0); Children.Add(address_block); //shows item expiratio date TextBlock exp_block = new TextBlock() { Margin = new Thickness(2, 2, 4, 2), FontSize = 16, HorizontalAlignment = HorizontalAlignment.Center, Text = expiration }; SetColumn(exp_block, 4); //SetRow(exp_block, 0); Children.Add(exp_block); // shows actual quantity of an item TextBlock quant_block = new TextBlock() { Margin = new Thickness(2, 2, 4, 2), FontSize = 16, HorizontalAlignment = HorizontalAlignment.Center, Text = quant.ToString() }; SetColumn(quant_block, 5); //SetRow(quant_block, 0); Children.Add(quant_block); { // a grid containing 3 columns for +/- buttons and the actual quanity collected Grid quan = new Grid(); quan.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }); quan.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(2, GridUnitType.Star) }); quan.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }); SetColumn(quan, 6); //SetRow(quan, 0); Children.Add(quan); // minus(-) button int rad = 10; minus = new Border() { CornerRadius = new CornerRadius(rad), Width = rad * 2, Height = rad * 2, BorderThickness = new Thickness(1), BorderBrush = Brushes.Black, HorizontalAlignment = HorizontalAlignment.Center, Child = new TextBlock() { Text = "-", TextAlignment = TextAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Top, FontSize = 14 }, Background = Brushes.White }; minus.MouseEnter += (se, ev) => { (se as Border).Background = Brushes.LightBlue; }; minus.MouseLeave += (se, ev) => { (se as Border).Background = Brushes.White; }; /**min = new Button() * { * Content = "-" * };*/ minus.MouseDown += (se, ev) => { if (quant_coll > 0) { QuantityCollected -= 1; } }; SetColumn(minus, 0); quan.Children.Add(minus); // the actual quanityt text block quantityText = new TextBlock() { FontSize = 16, HorizontalAlignment = HorizontalAlignment.Center }; SetColumn(quantityText, 1); quan.Children.Add(quantityText); // plus(+) button plus = new Border() { CornerRadius = new CornerRadius(rad), Width = rad * 2, Height = rad * 2, BorderThickness = new Thickness(1), BorderBrush = Brushes.Black, HorizontalAlignment = HorizontalAlignment.Center, Child = new TextBlock() { Text = "+", TextAlignment = TextAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Top, FontSize = 14 }, Background = Brushes.White }; plus.MouseEnter += (se, ev) => { (se as Border).Background = Brushes.LightBlue; }; plus.MouseLeave += (se, ev) => { (se as Border).Background = Brushes.White; }; /*pl = new Button() * { * Content = "+" * };*/ plus.MouseDown += (se, ev) => { if (quant_coll < act_quant) { QuantityCollected += 1; } }; SetColumn(plus, 2); quan.Children.Add(plus); } { // A stack panel on the second expandable row, containing confirm button /*sp = new StackPanel() * { * Orientation = Orientation.Horizontal, * HorizontalAlignment = HorizontalAlignment.Right, * Height = 0 * }; * SetColumn(sp, 0); * SetColumnSpan(sp, 7); * SetRow(sp, 1); * Children.Add(sp);*/ { TextBlock txt = new TextBlock() { FontSize = 14, Margin = new Thickness(4, 0, 4, 0) }; txt.Text = "OK"; Button btn = new Button() { Content = txt, Margin = new Thickness(3), VerticalAlignment = VerticalAlignment.Center }; btn.Click += (se, ev) => { ShowButtonPressed?.Invoke(this, new EventArgs()); }; SetColumn(btn, 7); //SetRow(btn, 0); Children.Add(btn); } } /*{ * // click on the grid events * UIElement source = null; * bool captured = false; * * MouseDown += (se, ev) => * { * source = (UIElement)se; * ev.MouseDevice.Capture(source); * captured = true; * }; * * MouseUp += (se, ev) => * { * if (captured) * { * ev.MouseDevice.Capture(null); * captured = false; * * ExpandMe?.Invoke(this, new EventArgs()); * } * }; * }*/ }