<p>I've been studying OOP for quite a while now and I have a good grasp of the theory.  I read the <a href="https://rads.stackoverflow.com/amzn/click/com/0596008678" rel="noreferrer" rel="nofollow noreferrer">Head First</a> book on OOP and, while it reinforced a lot of the theory, I found the case studies to be somewhat trivial.</p>

<p>I find that I'm applying OOP principles to my code each day, but I'm not sure if I'm applying them correctly.  I need to get to the point where I am able to look at my code and know whether I'm using inheritance appropriately, whether my object is cohesive enough, etc.</p>

<p>Does anyone have any good recommendations (books, online guides, blogs, walk-throughs, etc.) for taking the next step in developing solid OOP skills?</p>

<p>I am working primarily in .NET (visual basic), but I welcome suggestions that incorporate various platforms.</p>

Consider looking into Design Patterns. Although it seems like they aren't commonly used in enterprise applications (I've seen them more commonly used in API's and Frameworks than embedded into enterprise code), they could be applied to make software simpler or more robust in a lot of situations if only developers knew how to apply them.
The key is to understand the design patterns first, then with experience you'll learn how to apply them.
There is a
Head First book on design patterns
that teaches the concept pretty simply, although if you want a book that really covers design patterns in detail, check out the
Gang of Four design patterns book
, which is basically what made design patterns mainstream and is referred to almost every time the topic is brought up.
Design patterns can be applied in pretty much any object-oriented language to some degree or another, although some patterns can be overkill or over engineering in some cases.
EDIT:
I also want to add, you should check out the book
Code Complete 2
. It's a very influential book in the world of software development. It covers a lot of different concepts and theories. I learn something new every time I read it. It's such a good book that if I read it every 6 months to a year, I look at it from a different perspective that makes me a better programmer just by re-reading it. No matter how much you might think you know, this book will make you realize just how little you really know. It's really a great book. I can't stress how much you should own this book.