Esempio n. 1
0
        public void DrawNotes()
        {
            if (NoteCanvas.Children.Count != NoteControls.Count)
            {
                throw new Exception();
            }

            if (Part == null)
            {
                return;
            }

            for (var i = 0; i < Part.Notes.Count; i++)
            {
                var            note = Part.Notes[i];
                var            next = Part.Notes.ElementAtOrDefault(i + 1);
                RenderNoteView noteControl;
                if (i < NoteControls.Count)
                {
                    noteControl = NoteControls[i];
                }
                else
                {
                    noteControl = new RenderNoteView(this);
                    NoteCanvas.Children.Add(noteControl);
                    NoteControls.Add(noteControl);
                }

                MakeNote(noteControl, note.NoteNum, note.FinalPosition, note.FinalLength);
                noteControl.SetNote((RenderNote)note, (RenderNote)next);
                lastPosition = Math.Max(lastPosition, lastPosition + note.Length);
            }
        }
Esempio n. 2
0
        private void MakeNote(RenderNoteView noteControl, int noteNumber, long startTime, int duration)
        {
            var top  = MusicMath.Current.GetNoteYPosition(noteNumber);
            var left = MusicMath.Current.GetNoteXPosition(startTime);

            noteControl.Width  = duration * xScale;
            noteControl.Height = yScale;
            noteControl.SetValue(Canvas.TopProperty, top);
            noteControl.SetValue(Canvas.LeftProperty, left);
        }