public static void StraightLine(WriteableBitmap b, int x, int y, int width, Color color)
        {
            byte[] oldBytes = null;

            bmp = b;

            if (!isSelecting)
            {
                startPoint = new P(x, y);
            }

            currentPoint = new P(x, y);


            if (isSelecting)
            {
                oldBytes = History.Undo().bmp;
                bmp.PixelBuffer.AsStream().Write(oldBytes, 0, oldBytes.Length);
            }

            isSelecting = true;

            bmp.DrawLineCustom(startPoint.x, startPoint.y, currentPoint.x, currentPoint.y, color, width);

            oldBytes = bmp.PixelBuffer.ToArray();
            bmp.PixelBuffer.ToArray().CopyTo(oldBytes, 0);



            History.EndAction(new Action(oldBytes));
        }