FFMPEG, VLC, DirectX (the most difficult, but probably most efficient way), and Gstreamer (my recommendation) all have .NET bindings. Take your pick.
Here is a quick link for matroska in gstreamer to get you started:
Question
I have a media player that I made using c# and I wanted to decode mkv formats, but I can't find any good info about the codec or how to encode/decode mkv files. How can I decode matroska (mkv) video format?
La solution
FFMPEG, VLC, DirectX (the most difficult, but probably most efficient way), and Gstreamer (my recommendation) all have .NET bindings. Take your pick.
Here is a quick link for matroska in gstreamer to get you started: