private void CreateFretBoard() { InstrumentType type = InstrumentType.Guitar; int numberOfStrings = 6; TuningType tuning = TuningType.Standard; // Die Schleife geht durch die MenuItems der Instrumente durch und ignoriert den Seperator for (int i = 0; i < mInstrumentType.Items.Count; i++) { try { MenuItem item = (MenuItem)mInstrumentType.Items[i]; if (item.IsChecked == true) { type = _dicInstruments[item.Header.ToString()].InstrumentType; numberOfStrings = _dicInstruments[item.Header.ToString()].NumberOfStrings; break; } } catch { // ignored } } for (int i = 0; i < mTune.Items.Count; i++) { try { MenuItem item = (MenuItem)mTune.Items[i]; if (item.IsChecked == true) { tuning = Tuning.GetDicTuningsValue(item.Header.ToString()); } } catch { // ignored } } Instrument firstInstrument = new Instrument(type, numberOfStrings, tuning); Scale scale = new Scale(CBBaseNote.SelectedItem.ToString(), _dicToneMode[CBToneMode.SelectedItem.ToString()]); for (int i = 0; i < _labelList.Count; i++) { GridApplication.Children.Remove(_labelList[i]); } int numberofstrings = firstInstrument.NumberOfStrings; int wantedRows = numberofstrings + 1; int numberoffrets = 15; int wantedColumns = numberoffrets + 1; int[] fretMarkers = { 3, 5, 7, 9, 12, 15, 17 }; double heightOfFretBoard = 170; //200; // Versuchen die Höhe durch eine Funktion zu bekommen double heightOfSingleFret = heightOfFretBoard / numberOfStrings; //wantedRows; double widhtOfFretBoard = 507; // Versuchen die Breite durch eine Funktion zu bekommen double widthOfSingleFret = widhtOfFretBoard / wantedColumns; for (int i = 0; i < wantedRows; i++) { for (int j = 0; j < wantedColumns; j++) { Label b = new Label { BorderBrush = Brushes.Black }; if (i < wantedColumns - 1) { try { if (scale.wantedScale.Contains(firstInstrument.StringsOfInstrument[i].GetNoteFromString(j))) { b.Content = firstInstrument.StringsOfInstrument[i].GetNoteFromString(j); b.Background = Brushes.DarkGray; } else { b.Content = ""; b.Background = Brushes.Transparent; //(SolidColorBrush)new BrushConverter().ConvertFromString("#0306FF"); } b.BorderThickness = j == 0 ? new Thickness(0, 0, 3, 1) : new Thickness(0, 0, 1, 1); } catch { // ignored } } b.Height = heightOfSingleFret; b.Width = widthOfSingleFret; b.HorizontalContentAlignment = HorizontalAlignment.Center; if (i == numberofstrings) { b.Content = ""; b.Background = System.Windows.Media.Brushes.Transparent; b.BorderThickness = new Thickness(0, 0, 0, 1); b.Height = 30; } if (i == numberofstrings && fretMarkers.Contains(j)) { b.Content = j; } b.VerticalAlignment = VerticalAlignment.Bottom; b.HorizontalAlignment = HorizontalAlignment.Left; b.HorizontalContentAlignment = HorizontalAlignment.Right; Thickness margin = b.Margin; margin.Left = widthOfSingleFret * j; margin.Bottom = heightOfSingleFret * i; b.Margin = margin; Grid.SetRow(b, 1); GridApplication.Children.Add(b); _labelList.Add(b); } } }
private void InitializeTuningMenu() { mTStandard.Header = Tuning.GetDicTuningsKey(0); mTDropD.Header = Tuning.GetDicTuningsKey(1); }