public MeasureDrawing(string measureId, string partId, double staffDistance, int stavesCount)
        {
            //PropertyChanged += OnWidthChanged;
            stavesDistance   = staffDistance;
            this.stavesCount = (uint)stavesCount;
            layout           = ViewModelLocator.Instance.Main.CurrentLayout;
            pageProperies    = layout.PageProperties;
            this.id          = measureId;
            this.partId      = partId;

            GetMeasureProperties();
            //! CreateStaffLine();
            CreateVisualObject();
        }
Example #2
0
        public void SetSystemMeasureRanges()
        {
            LayoutControl.LayoutGeneral currentLayout = ViewModel.ViewModelLocator.Instance.Main.CurrentLayout;
            double defaultLeftMargin = currentLayout.PageMargins.LeftMargin;
            double defaultTopMargin  = currentLayout.PageMargins.TopMargin;
            var    part = _currentPart;

            _measuresPerSystem = new List <List <string> >();
            foreach (var page in _partSysemsInPages)
            {
                List <List <string> > tempList = new List <List <string> >();
                foreach (var item2 in page)
                {
                    _measuresPerSystem.Add(part.TryGetMeasuresIdRange(item2));
                    tempList.Add(part.TryGetMeasuresIdRange(item2));
                }
                _measuresPerSystemPerPage.Add(new List <List <string> >(tempList));
            }
            double previousWidth = 0.0;
            double currentLineY  = 0.0;

            _coords = new Dictionary <string, Point>();
            foreach (var measuresLine in _measuresPerSystem)
            {
                int systemIndex = _measuresPerSystem.IndexOf(measuresLine);
                if (systemIndex == 0)
                {
                    previousWidth = 0.0;

                    foreach (var measureId in measuresLine)
                    {
                        _coords.Add(measureId, new Point(previousWidth, currentLineY));
                        previousWidth += part.GetMeasureUsingId(measureId).CalculatedWidth.TenthsToWPFUnit();
                    }
                }
                else
                {
                    previousWidth = 0.0;
                    foreach (var measureId in measuresLine)
                    {
                        _coords.Add(measureId, new Point(previousWidth, currentLineY));
                        previousWidth += part.GetMeasureUsingId(measureId).CalculatedWidth.TenthsToWPFUnit();
                    }
                }
            }
        }