Share via


Simple Paint Application

Here's a screenshot of a typical "Paint" application:

image

It has the following features:

  1. The "pencil" or "brush" tool let you draw freely on the canvas.
    You can select the color from either Black, Red, Green, or Blue.
    You can also select from four different thicknesses.
  2. The "text" tool lets you add text on the canvas.
  3. The "line" tool lets you draw straight lines on the canvas.
  4. The "rectangle" tool lets you draw rectangles on the canvas.
  5. The "ellipse" tool lets you draw ellipses on the canvas.
  6. The "rounded rectangle" tool lets you draw rectangles with rounded corners.

There is no support for saving or opening files, no undo, no eraser, etc.

It can be easily implemented in WPF and C# by using a combination of InkCanvas and other built-in WPF controls.  The layout and look of the buttons is irrelevant and can be changed, as long as it's obvious what they do.

I am looking for the ability to write clean and elegant code that is easily maintainable.  I don't want to see messy code even if it successfully implements all of the features.  Research software will always evolve over time and if the code is too messy or too hard to change then it may get thrown away.  This doesn't mean that the code should be "reusable" or "extensible".  Rather, the code should be "evolvable", meaning it should be easy to understand and easy to change.

Comments

  • Anonymous
    October 16, 2008
    I am a student of BITS PILANI.I have implemented similar kind of application in VB.net with 2-3 more features.Its real fun developing such applications!!I would love to contribute in developing any such types of application.

  • Anonymous
    October 16, 2008
    It's always great to hear about students getting experience with .NET technologies.  In fact, Paint.NET (http://www.getpaint.net/) was originally written as an undergraduate project. I'd encourage you to apply for an internship here at Microsoft by visiting http://www.microsoft.com/college and/or http://research.microsoft.com/aboutmsr/jobs/internships.