Example #1
0
        private void initUI()
        {
            double pnlWidth = (double)AppLib.GetAppGlobalValue("categoriesPanelWidth");
            double pnlHeight = (double)AppLib.GetAppGlobalValue("categoriesPanelHeight");
            double promoFontSize, dH, d1, dKoefPortionCount;
            double pnlW, titleFontSize;
            // грид блюд
            double dishesPanelWidth  = (double)AppLib.GetAppGlobalValue("dishesPanelWidth");
            double dishesPanelHeight = (double)AppLib.GetAppGlobalValue("dishesPanelHeight");

            scrollDishes.Height = dishesPanelHeight; scrollDishes.Width = dishesPanelWidth;
            double dishNameFontSize, dishUnitFontSize;
            string backgroundImage;
            Style  stl; Setter str;

            // дизайн вертикальный: панель меню СВЕРХУ
            if (AppLib.IsAppVerticalLayout)
            {
                DockPanel.SetDock(gridMenuSide, Dock.Top);
                //                menuSidePanelLogo.Background = (Brush)AppLib.GetAppGlobalValue("appBackgroundColor");
                // грид меню
                //pnlHeight *= 0.8;
                gridMenuSide.Height = pnlHeight;
                gridMenuSide.Width  = pnlWidth;

                // панель меню на всю ширину экрана
                dH = pnlHeight / 10d;
                gridMenuSide.RowDefinitions[0].Height = new GridLength(3.0 * dH);
                gridMenuSide.RowDefinitions[1].Height = new GridLength(0.0 * dH);
                gridMenuSide.RowDefinitions[2].Height = new GridLength(3.5 * dH);
                gridMenuSide.RowDefinitions[3].Height = new GridLength(0.0 * dH);
                gridMenuSide.RowDefinitions[4].Height = new GridLength(0.0 * dH);
                gridMenuSide.RowDefinitions[5].Height = new GridLength(3.5 * dH);

                // stackPanel для Logo
                gridMenuSide.Children.Remove(imageLogo);
                StackPanel pnlLogo = new StackPanel();
                pnlLogo.Orientation = Orientation.Horizontal;
                pnlLogo.Background  = new SolidColorBrush(Color.FromRgb(0x62, 0x1C, 0x55));

                pnlW = gridMenuSide.Width - 2.0 * dH;
                // перенести кнопку Назад
                gridMenuSide.Children.Remove(btnReturn);
                pnlLogo.Children.Add(btnReturn);
                btnReturn.Width = 0.3 * pnlW;  // общая ширина = ширина элемента + отступы справа/слева
                txtReturn.HorizontalAlignment = HorizontalAlignment.Left;
                btnReturn.Margin     = new Thickness(dH, 0, 0, 0);
                btnReturn.Background = pnlLogo.Background;
                //   языковые кнопки
                gridMenuSide.Children.Remove(gridLang);
                gridLang.Height = 2.0 * dH;  // необходимо для расчета размера внутренних кнопок
                gridLang.Width  = 0.2 * pnlW;
                gridLang.Margin = new Thickness(0.1 * pnlW, 0, 0.1 * pnlW, 0);
                pnlLogo.Children.Add(gridLang);
                gridLang.Visibility = Visibility.Visible;
                // языковые кнопки, фон для внешних Border, чтобы они были кликабельные
                btnLangUa.Background = pnlLogo.Background;
                btnLangRu.Background = pnlLogo.Background;
                btnLangEn.Background = pnlLogo.Background;
                double dMin      = Math.Min(gridLang.Height, gridMenuSide.Width / (0.3 + 1.0 + 0.3 + 1.0 + 0.3 + 1.0 + 0.3));
                double dLangSize = 0.7 * dMin;
                setLngInnerBtnSizes(btnLangUaInner, lblLangUa, dLangSize);
                setLngInnerBtnSizes(btnLangRuInner, lblLangRu, dLangSize);
                setLngInnerBtnSizes(btnLangEnInner, lblLangEn, dLangSize);

                // перенести промокод
                gridMenuSide.Children.Remove(gridPromoCode);
                gridPromoCode.ColumnDefinitions[3].Width = new GridLength(0.0 * dH);
                gridPromoCode.Width = 0.3 * pnlW;
                gridPromoCode.HorizontalAlignment = HorizontalAlignment.Right;
                gridPromoCode.Height = 1.5 * dH;
                promoFontSize        = 0.5 * dH;
                pnlLogo.Children.Add(gridPromoCode);

                Grid.SetRow(pnlLogo, 0);
                gridMenuSide.Children.Add(pnlLogo);

                // строка с общей стоимостью
                pnlTotal.Orientation   = Orientation.Horizontal;
                txtOrderPrice.Margin   = new Thickness(20, 0, 0, 0);
                pnlTotalLabel.FontSize = (double)AppLib.GetAppGlobalValue("appFontSize2");
                txtOrderPrice.FontSize = (double)AppLib.GetAppGlobalValue("appFontSize1");

                // кнопка Оформить
                btnPrintCheck.Margin       = new Thickness(dH, 0.0 * dH, dH, 0.8 * dH);
                btnPrintCheck.CornerRadius = new CornerRadius((double)AppLib.GetAppGlobalValue("cornerRadiusButton"));
                txtPrintCheck.FontSize     = (double)AppLib.GetAppGlobalValue("appFontSize4");
                txtPrintCheck.FontWeight   = FontWeights.Bold;
                gridMenuSide.Children.Remove(txtCashier);
                pnlPrintCheck.Children.Add(txtCashier);
                txtCashier.Style = (Style)this.Resources["goToCashierVer"];

                // фон
                backgroundImage = AppLib.GetImageFullFileName((string)AppLib.GetAppGlobalValue("BackgroundImageVertical"));

                setLangButtonStyle(true);   // "включить" текущую языковую кнопку

                // панели блюд
                dishBorderHeight  = (dishesPanelHeight - dishesListTitle.ActualHeight) / 6.0;
                titleFontSize     = 0.015 * dishesPanelHeight;
                dishNameFontSize  = 0.09 * dishBorderHeight;
                dishUnitFontSize  = 0.08 * dishBorderHeight;
                dKoefPortionCount = 1.5d;
                // отступы кнопок изменения кол-ва блюда
                setStylePropertyValue("dishPortionImageStyle", "Margin", new Thickness(0.03 * dishBorderHeight));
                setStylePropertyValue("dishDelImageStyle", "Margin", new Thickness(0.1 * dishBorderHeight));
            }

            // дизайн горизонтальный: панель меню слева
            else
            {
                DockPanel.SetDock(dockMain, Dock.Left);

                // грид меню
                gridMenuSide.Height = pnlHeight;
                gridMenuSide.Width  = pnlWidth;
                dH = pnlHeight / 13d;

                // промокод
                gridPromoCode.Height = 0.6 * dH;
                gridPromoCode.Margin = new Thickness(0, 0, 0, 0.4 * dH);
                promoFontSize        = 0.3 * gridPromoCode.Height;

                txtCashier.Margin = new Thickness(0.5 * dH, 0, 0.5 * dH, 0);

                // фон
                backgroundImage = AppLib.GetImageFullFileName((string)AppLib.GetAppGlobalValue("BackgroundImageHorizontal"));

                dishBorderHeight  = (dishesPanelHeight - dishesListTitle.ActualHeight) / 4.0;
                titleFontSize     = 0.02 * dishesPanelHeight;
                dishNameFontSize  = 0.09 * dishBorderHeight;
                dishUnitFontSize  = 0.08 * dishBorderHeight;
                dKoefPortionCount = 1.5;
                // отступы кнопок изменения кол-ва блюда
                setStylePropertyValue("dishPortionImageStyle", "Margin", new Thickness(0.03 * dishBorderHeight));
                setStylePropertyValue("dishDelImageStyle", "Margin", new Thickness(0.15 * dishBorderHeight));
            }

            // фон
            imgBackground.Source = ImageHelper.GetBitmapImage(backgroundImage);
            // яркость фона
            imgBackground.Opacity = (double)AppLib.GetAppGlobalValue("BackgroundImageBrightness", 0.3);

            // высота рамки блюда в заказе, из стиля
            setStylePropertyValue("dishBorderStyle", "MinHeight", dishBorderHeight);
            // элементы в строке блюда, относительно ее высоты dishBorderHeight
            // внутренние поля в рамке блюда
            setStylePropertyValue("dishItemStyle", "Padding", new Thickness(0.06 * dishBorderHeight, 0.05 * dishBorderHeight, 0, 0.05 * dishBorderHeight));

            // изображение блюда (1:1.33)
            setStylePropertyValue("dishImageBorderStyle", "Height", 1.0 * dishBorderHeight);
            setStylePropertyValue("dishImageBorderStyle", "Width", 1.33 * dishBorderHeight);

            //  наименование блюда
            setStylePropertyValue("dishNameStyle", "FontSize", dishNameFontSize);
            // ед.изм. блюда
            setStylePropertyValue("dishUnitStyle", "FontSize", dishUnitFontSize);
            // маркеры блюда
            setStylePropertyValue("dishMarksItemStyle", "Height", 1.2 * dishUnitFontSize);

            // заголовок ингредиентов
            setStylePropertyValue("dishIngrTitleStyle", "FontSize", dishUnitFontSize);
            // наименование и цена ингредиента
            setStylePropertyValue("dishIngrStyle", "FontSize", dishUnitFontSize);
            setStylePropertyValue("dishIngrDelImageStyle", "Width", 2.5 * dishUnitFontSize);
            setStylePropertyValue("dishIngrDelImageStyle", "Padding", new Thickness(0.5 * dishUnitFontSize, 0.2 * dishUnitFontSize, 0.5 * dishUnitFontSize, 0.2 * dishUnitFontSize));
            // количество и цена порции
            setStylePropertyValue("dishPortionTextStyle", "FontSize", dKoefPortionCount * dishNameFontSize);

            // промокод
            AppLib.SetPromocodeTextStyle(txtPromoCode);

            // яркость фона
            string opacity = AppLib.GetAppSetting("BackgroundImageBrightness");

            if (opacity != null)
            {
                imgBackground.Opacity = opacity.ToDouble();
            }

            // заголовок списка
            dishesListTitle.Margin   = new Thickness(0, titleFontSize, 0, titleFontSize);
            dishesListTitle.FontSize = 1.5 * titleFontSize;

            // большие кнопки скроллинга
            var v = Enum.Parse(typeof(HorizontalAlignment), (string)AppLib.GetAppGlobalValue("dishesPanelScrollButtonHorizontalAlignment"));

            btnScrollDown.Width  = (double)AppLib.GetAppGlobalValue("dishesPanelScrollButtonSize");
            btnScrollDown.Height = (double)AppLib.GetAppGlobalValue("dishesPanelScrollButtonSize");
            btnScrollDown.HorizontalAlignment = (HorizontalAlignment)v;
            btnScrollUp.Width  = (double)AppLib.GetAppGlobalValue("dishesPanelScrollButtonSize");
            btnScrollUp.Height = (double)AppLib.GetAppGlobalValue("dishesPanelScrollButtonSize");
            btnScrollUp.HorizontalAlignment = (HorizontalAlignment)v;
        }  // method