Over the years I've learned to use a simple phrase whenever I encounter situations where a person needs to change their behavior, attitude or both. Be it a child or adult that I'm working with, I will simply tell them, "I know you can do better."
Saying, "I know you can do better" to someone generally doesn't get the defensive response, I think because people don't feel judged or equated to whatever you disapprove of in the situation, because you separate them from what they did. Actually you tell them that you believe that they are better than what they did, which is a positive judgement of them.
Saying, "I know you can do better" to someone is neither a demand or command, so people don't feel like you are trying to control them. It is simply an invitation for them to consider doing something differently, doing something better.
Saying, "I think you can do better" to someone is a complement and an expression of confidence and respect, not a put down or expression of disapproval or disdain. It feels goo to have someone believe in you.
Saying, "I think you can do better" to someone is an expression of hope about next time rather than blame for this time