There are a lot of ways to do this:
1) Create your own control.
2) Use a free play control.
3) Use a commercial paly control.
The first option is like re-inventing the wheel. It does not make sense to do unless you want to implement specific feature to your application.
The second option is good enough if you want to implement minimum features. There are a lot of Open source libraries that might be good for you such as "OpenML" that you can take a look at.
As for the third option, it is probably the best choice because in general Open source libraries has lower performance, satiability and lower quality of output than commercial ones. However, the only downside of using commercial toolkits is the money
In my case I went with a sdk called leadtools and it was great.
See the following tutorial
Hope it helps.