C# has nothing to do with WINAPI, so you are not required to learn it. I'm not sure if you should learn it, it's kinda like asking should I play football or go swimming. Each is a viable option, if you can, do both.

Like nvoigt says, C# has nothing to do with the WinAPI, but you can use the WinAPI in C# by importing certain system dlls like kernel32.dll and user32.dll. To LEARN the whole WinAPI would be pointless for C# unless you take notes and use as a reference for your future C# that you can use as a powerhouse of awesome functions, like those functions that can help you create keyloggers and other illegal programs :]...hehehe.

It helps to know the WinAPI, but over time it's going to become more and more of a "DONT GO THERE" place as Microsoft builds on .NET. While you can call WinAPI from .NET, its generally not a good idea to - most times there are better ways in .NET.