} // method // ******* Выбор гарнира ********* // здесь возможно три состояния: // - установить выделение гарнира в этом же или другом блюде // - снять выделение в этом же блюде этого же (текущего) гарнира private void GrdGarn_SelectGarnish(object sender, SelectGarnishEventArgs e) { if (AppLib.IsDrag == true) { return; } if (AppLib.IsEventsEnable == false) { AppLib.IsEventsEnable = true; return; } // выбран гарнир if (e.Selected == true) { // снять выделение ранее выбранного гарнира // в том же блюде if ((this._selectedGarnIndex > -1) && (this._selectedGarnIndex != e.GarnishIndex)) { getSelectedGarnish().IsSelected = false; } // в другом блюде else { (this.Parent as MainMenuDishesCanvas).ClearSelectedGarnish(); } // установить выделение MainMenuGarnish currentGarnItem = (MainMenuGarnish)sender; currentGarnItem.IsSelected = true; this._selectedGarnIndex = e.GarnishIndex; AppLib.WriteAppAction($"MainWin|Блюдо '{_dishItem.langNames["ru"]}', выделен гарнир '{_dishItem.Garnishes[_selectedGarnIndex].langNames["ru"]}'"); // изменить изображение блюда с гарниром if (_pathImage != null) { _pathImage.Fill = currentGarnItem.DishWithGarnishImageBrush; } // изменить описание блюда if (string.IsNullOrEmpty(e.DishWithGarnishDescription) == false) { _descrText.Text = e.DishWithGarnishDescription; } setAddButtonState(true); } // снять выделение с текущего гарнира else { if (_selectedGarnIndex > -1) { AppLib.WriteAppAction($"MainWin|Блюдо '{_dishItem.langNames["ru"]}', снято выделение с гарнира '{_dishItem.Garnishes[_selectedGarnIndex].langNames["ru"]}'"); } unselectGarnish(); } } // method
private void createGarnisheButtons() { double grnColWidth = Math.Floor(contentPanelWidth / 3d); double grnH = dGrid.RowDefinitions[4].Height.Value, grnW = ((AppLib.IsAppVerticalLayout)?1.1d:1.3) * grnH; // пропорции кнопки if (grnW > grnColWidth) { grnW = grnColWidth; } _grdGarnishes = new Grid(); _grdGarnishes.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(grnColWidth, GridUnitType.Pixel) }); _grdGarnishes.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(grnColWidth, GridUnitType.Pixel) }); _grdGarnishes.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(grnColWidth, GridUnitType.Pixel) }); Brush notSelTextBrush = AppLib.GetSolidColorBrushFromAppProps("dishPanelGarnishTextColor", Brushes.Black); Brush selTextBrush = AppLib.GetSolidColorBrushFromAppProps("dishPanelGarnishSelectTextColor", Brushes.Black); MainMenuGarnish grdGarn = new MainMenuGarnish(_dishItem, 0, grnH, grnW, dGrid); grdGarn.NotSelectedTextBrush = notSelTextBrush; grdGarn.SelectedTextBrush = selTextBrush; grdGarn.HorizontalAlignment = HorizontalAlignment.Left; grdGarn.SetValue(Grid.ColumnProperty, 0); grdGarn.SelectGarnish += GrdGarn_SelectGarnish; _grdGarnishes.Children.Add(grdGarn); if (_dishItem.Garnishes.Count >= 2) { grdGarn = new MainMenuGarnish(_dishItem, 1, grnH, grnW, dGrid); grdGarn.NotSelectedTextBrush = notSelTextBrush; grdGarn.SelectedTextBrush = selTextBrush; grdGarn.HorizontalAlignment = HorizontalAlignment.Center; grdGarn.SetValue(Grid.ColumnProperty, 1); grdGarn.SelectGarnish += GrdGarn_SelectGarnish; _grdGarnishes.Children.Add(grdGarn); } if (_dishItem.Garnishes.Count >= 3) { grdGarn = new MainMenuGarnish(_dishItem, 2, grnH, grnW, dGrid); grdGarn.NotSelectedTextBrush = notSelTextBrush; grdGarn.SelectedTextBrush = selTextBrush; grdGarn.HorizontalAlignment = HorizontalAlignment.Right; grdGarn.SetValue(Grid.ColumnProperty, 2); grdGarn.SelectGarnish += GrdGarn_SelectGarnish; _grdGarnishes.Children.Add(grdGarn); } Grid.SetRow(_grdGarnishes, 4); dGrid.Children.Add(_grdGarnishes); } // method
public void ClearSelectedGarnish() { if ((this._selectedGarnIndex > -1) || _isAnimating.IsSetBit(2) || _isAnimating.IsSetBit(3)) { MainMenuGarnish garn = getSelectedGarnish(); if (garn != null) { garn.IsSelected = false; } unselectGarnish(); } }