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