You can look into http://sharpdx.org/
It's a managed XInput library. Connecting to a controller is easy:
var controller = new SharpDX.XInput.Controller(SharpDX.XInput.UserIndex.One);
if (controller.IsConnected)
{
var state = controller.GetState();
var x = state.Gamepad.LeftThumbX;
var y = state.Gamepad.LeftThumbY;
}
SharpDX is available as nuget package.