private void InitializeFirstPage()
        {
            var pageViewModel = new PageViewModel()
            {
                PageNumber = 1,
                Top        = 0,
                Bottom     = DefaultPageHeight
            };

            var marginShape = new MarginShape
            {
                Position    = new Point(_margin.Left, _margin.Top),
                DataContext = pageViewModel
            };

            marginShape.Loaded += UpdateMarginsShape;

            _marginShapes.Add(marginShape);
            _reportViewModel.Pages.Add(pageViewModel);

            Diagram.AddShape(marginShape);
        }
        private void NewPageButton_Click(object sender, RoutedEventArgs e)
        {
            var lastPage = _reportViewModel.Pages.Last();

            var pageViewModel = new PageViewModel()
            {
                Top        = lastPage.Bottom + 1,
                Bottom     = (lastPage.Bottom + 1) + DefaultPageHeight,
                PageNumber = lastPage.PageNumber + 1
            };

            var marginShape = new MarginShape
            {
                Position    = new Point(_margin.Left, pageViewModel.Top + _margin.Top),
                DataContext = pageViewModel
            };

            marginShape.Loaded += UpdateMarginsShape;

            _reportViewModel.Pages.Add(pageViewModel);
            _marginShapes.Add(marginShape);

            Diagram.AddShape(marginShape);
        }