Elegance is a subjective quality, in my opinion. It is a bit like beauty in that it is in the eye of the beholder. Different people like different things. I don't know of any objective list of characteristics that equate to elegance. Elegant code is hard to write.
That being said, it is very easy to spot unelegant code and design when faced with it. Therefore I agree with the other contributor here who recommended reading lots of code. Good design is often the result of analysis of a design's bad characteristics and smells. It seems logical that good, clean, elegant code is the result of analysis of a block of code's bad characteristics and smells.
Always write code for those coming after you.