You should set your Viewport's width and height to match your screen resolution. Let's call these VW and VH.
To centre the vewport around the player's coordinates (let's call them PX and PY), you need to set the Viewport's tp-left position (let's call them VX, VY) as
VX = PX - VW / 2
VY = PY - VH / 2
In your game loop you basically take care of the player's movement by updating his position (PX, PY). Then, you update the viewport using the formula above.
Note that this makes the 'camera' rigid, that is, it always keeps the player strictly in the centre. To make the camera follow the player with a slight delay (which looks more natural), you could calculate target positions using the same formulas above (that
is, TX = PX - VW / 2 and TY = PY - VH / 2). Then you move VX and VY slightly towards the target TX, TY. For example as follows:
DeltaX = TX - VX
DeltaY = TY - VY
VX += DeltaX * K * DeltaT
VY += DeltaY * K * DeltaT
where DeltaT is the time in seconds since the last game loop call (from gameTime.ElapsedTime.TotalSeconds) and K is some constant to control the agility of your camera. Values of K = 4 usually work well. If you make K smaller the camera might scroll to slowly
and if you make K much larger it will almost feel like the rigid camera with the original formulas at the top.
Hope that helps.
P.S. Remember also that when rendering your character or other entity sprites on the map, you need to subtract the viewport position VX, VY from the entities' positions in map pixels to get the correct screen coordinates. See this
discussion for more info.