public ScorePartwisePartMeasureBuilder() { measure = new ScorePartwisePartMeasureMusicXML { Items = new object[0] }; }
private void OnWidthChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(ScorePartwisePartMeasureMusicXML.CalculatedWidth)) { //! Update staff Line visual if measure width changed ScorePartwisePartMeasureMusicXML m = sender as ScorePartwisePartMeasureMusicXML; measureWidth = m.CalculatedWidth.TenthsToWPFUnit(); UpdateVisualObject(); } }
private void GetMeasureProperties() { visualObject = new DrawingVisualHost(); measureSerializable = ViewModelLocator.Instance.Main.CurrentSelectedScore.Part[partId.GetPartIdIndex()].Measure.FirstOrDefault(x => x.Number == id); measureSerializable.PropertyChanged += OnWidthChanged; measureHeight = layout.PageProperties.StaffHeight.MMToWPFUnit() * stavesCount + (stavesDistance.TenthsToWPFUnit() * (stavesCount - 1)); measureWidth = measureSerializable.CalculatedWidth.TenthsToWPFUnit(); size = new Size(measureWidth, measureHeight); }
public void GenerateContent() { foreach (var measureId in _measuresList) { MeasureDrawing measureCanvas = new MeasureDrawing(measureId, _partId, _staffDistance, _stavesCount); ScorePartwisePartMeasureMusicXML measureSerializable = ViewModel.ViewModelLocator.Instance.Main.CurrentSelectedScore.Part[_partId.GetPartIdIndex()].MeasuresByNumber[measureId]; Canvas.SetTop(measureCanvas.BaseObjectVisual, 0); Canvas.SetLeft(measureCanvas.BaseObjectVisual, _partProperties.Coords[measureId].X); PartSegmentCanvas.Children.Add(measureCanvas.BaseObjectVisual); MeasureSegmentController measureSegment = new MeasureSegmentController(measureSerializable, _partId, _stavesCount); _partMeasures.Add(measureSegment); Canvas.SetTop(measureSegment.GetMeasureCanvas(), 0); Canvas.SetLeft(measureSegment.GetMeasureCanvas(), _partProperties.Coords[measureId].X); PartSegmentCanvas.Children.Add(measureSegment.GetMeasureCanvas()); } }
private void CheckMeasureId(ScorePartwisePartMeasureMusicXML measure) { if (measure.Number == null) { if (part.Measure.Count() == 0) { measure.Number = 1 + ""; } else if (int.TryParse(part.Measure.LastOrDefault().Number, out int number)) { // set next number measure.Number = ++number + ""; } else { Console.WriteLine("Part Builder measure number parse failed: " + measure.Number); } } }
public ScorePartwisePartBuilder AddMeasure(ScorePartwisePartMeasureMusicXML measure) { CheckMeasureId(measure); part.Measure.Add(measure); return(this); }