コード例 #1
0
        //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());
             *      }
             *  };
             * }*/
        }
コード例 #2
0
        /// <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);
            }
        }
コード例 #3
0
        //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);
            }
        }
コード例 #4
0
ファイル: OrderContentItem.cs プロジェクト: makeitshine/Aster
        /// <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());
             *      }
             *  };
             * }*/
        }