The garbage collector runs whenever it decides to run; this is not necessarily tied to anything the user does, and certainly not minimizing the application. Generally, you can think of it as a function of the amount of memory usage compared to the total amount of free memory. But the point is, this is supposed to be somewhat opaque to you as a programmer. The big benefit of garbage collection over manually memory management is that you shouldn't have to worry about any of this.
I suspect from your question that you're using the Windows Task Manager to monitor your application's memory usage and determine when garbage collection occurs. This is a huge mistake. If you really need to do memory profiling, you need to invest in a proper profiler. Task Manager is not designed for this, and you'll often get false reads.
More specifically, the reason why you appear to see a marked decrease in the amount of memory consumed by your application when you minimize it is just one of the false reads you'll get when trying to do memory profiling with Task Manager. What's actually going on is that whenever you minimize an application, the Windows kernel automatically pages out a large portion of the memory it was using. You'll see this for all of your applications, not just those written in .NET. Because Task Manager is showing you the subset of the total memory in use by the application that exists in real memory at the time (i.e., the amount that hasn't been paged out to disk), it looks like the memory usage has decreased when it hasn't really. To get a slightly more accurate read, you should be looking at the process's "Private Bytes" value. This knowledge base article provides further details.