Exemple #1
0
        }     // method

        // просто изменить текст и кисти кнопки, если надо
        private void changeStateButton(int buttonIndex, OrderStatusEnum eState)
        {
            Border          border    = (Border)pnlStateButtons.Children[buttonIndex];
            OrderStatusEnum tagStatus = OrderStatusEnum.None;

            // проверить статус в теге кнопки
            if ((border.Tag != null) && (border.Tag is OrderStatusEnum))
            {
                tagStatus = (OrderStatusEnum)border.Tag;
                //if (tagStatus == eState) return;  // выйти, если кнопка с таким же статусом
            }

            // если статус изменился, то поменять кисти
            if (tagStatus != eState)
            {
                border.Tag = eState;
                // получить фон и цвет шрифта
                Brush backgroundBrush = null, foregroundBrush = null;
                StateGraphHelper.SetStateButtonBrushes(eState, out backgroundBrush, out foregroundBrush);
                border.Background = backgroundBrush;
                border.SetValue(TextBlock.ForegroundProperty, foregroundBrush);
            }

            // и надписи на кнопке
            string btnText1, btnText2;
            // возврат из Готов в Приготовление
            bool isReturnCooking = (((_currentState == OrderStatusEnum.Ready) && (eState == OrderStatusEnum.Cooking)) ||
                                    ((_currentState == OrderStatusEnum.ReadyConfirmed) && (eState == OrderStatusEnum.Cooking)));

            StateGraphHelper.SetStateButtonTexts(eState, out btnText1, out btnText2, (_modelType == AppViewModelEnum.Order), isReturnCooking);
            Grid      grd = (Grid)border.Child;
            TextBlock tbStateName = (TextBlock)grd.Children[0], tbStateDescr = (TextBlock)grd.Children[1];
            Size      tbSize    = new Size(border.Width, border.Height);
            double    reqHeight = border.Height / 2d;

            if (tbStateName.Text != btnText1)
            {
                tbStateName.Text = btnText1;
                WpfHelper.AssignFontSizeByMeasureHeight(tbStateName, tbSize, reqHeight, true);
            }
            if (tbStateDescr.Text != btnText2)
            {
                tbStateDescr.Text = btnText2;
                WpfHelper.AssignFontSizeByMeasureHeight(tbStateDescr, tbSize, reqHeight, true);
            }
        }