Checking if a point is on screen
At a glance, OnScreen looks like a method that would raise some Screen event, as On[EventName] is, by convention, the name we use for methods that raise an event. Now, those would obviously return void, and yours is returning a bool - I think I would have it like this:

public bool IsOnScreen(Vector2 point)


The return statement is pretty intense in terms of parentheses. Are they meant to improve readability?

return ((((rect.X &lt;= point.X) &amp;&amp; (point.X &lt; (rect.X + rect.Width))) &amp;&amp; (rect.Y &lt;= point.Y)) &amp;&amp; (point.Y &lt; (rect.Y + rect.Height)));


Let's try something:

return rect.X &lt;= point.X 
    &amp;&amp; point.X &lt; (rect.X + rect.Width) 
    &amp;&amp; rect.Y &lt;= point.Y 
    &amp;&amp; point.Y &lt; (rect.Y + rect.Height);


Much better isn't it?