Exemplo n.º 1
0
        private void DrawTie(double width, double left, double notePos, char orientation, byte partIndex)
        {
            Image image = new Image();

            image.Width = width;
            double height = LayoutController.ElementHeight["T"];

            image.Height = height;
            image.HorizontalAlignment = HorizontalAlignment.Left;
            double top = LayoutController.GetTieTopMargin(notePos, height, orientation, partIndex);

            image.Margin = new Thickness(left, top, 0, 0);

            DrawingVisual drawingVisual = new DrawingVisual();
            // Retrieve the DrawingContext in order to create new drawing content.
            DrawingContext drawingContext = drawingVisual.RenderOpen();

            // Concave arc.
            if (orientation == '-')
            {
                LayoutController.DrawArc(drawingContext, null, new Pen(Brushes.Black, 2),
                                         new Point(0, height / 6), new Point(width, height / 6), new Size(width, height));
            }
            // Convex arc.
            else
            {
                LayoutController.DrawArc(drawingContext, null, new Pen(Brushes.Black, 2),
                                         new Point(width, 0), new Point(0, 0), new Size(width, height));
            }
            // Persist the drawing content.
            drawingContext.Close();

            RenderTargetBitmap bmp = new RenderTargetBitmap((int)width + 50, (int)height, 120, 96, PixelFormats.Pbgra32);

            bmp.Render(drawingVisual);
            image.Source = bmp;

            staffGrid.Children.Add(image);
            Grid.SetRow(image, partIndex);
        }