ZLIB could be a good answer, but if you're aware of people opening grabbing your assets, you could also make your own file format to store your assets, its not that hard though.
Here's how you can make it.
It is in C, but should not be that hard to learn, as C# is some like C and C++.
Of course, people that still have higher knowledge can catch your resources, you can add little encryption if you want, not too hard.
This can be very useful, but it will just join your files. For compression too, you have two choices.
Make your entire resources file, compress it, and ship.
This Method is easy, but not very good, you should uncompress everything if you want to take just one resource.
Compress every resource, and add they compressed to the resource file.
That's pretty good too, you'll have a slight increase in the size beside the method 1, because each file is compressed separately, but its better if you want flexibility.
Each method has its own drawbacks, you should choose wisely. Generally, if you game has a pretty low number of resources, method 1 should be better, If you have LOTS, the method 2 should fit you, because the size of all resources together will overwhelm the extra that you gain.
For compression libs, you have:
- The most famous medium, Zlib
- The one with the faster decompression, LZO
- The great compression ratio, 7-Zip
I would go with LZO if I want fast access ingame, so you have not to fear about uncompressing in real time, 7-Zip if I want the files to be shrinked A LOT or Zlib itself if I want balanced decompression ratio and size.
The choice is yours :D
Ah, of course there are others algorithms to compress data, and you can find those googling.