In my experience "shirt penis" is best corrected/avoided by wearing pants with a higher rise. It's happening because the shirt is working its way our of your pants. Heavier fabrics will help too, but for the most part I find my shirts look goofy tucked into pants with <10" rise.
I see what you are saying.
However, an observation I have, is that I am currently wearing that pictured outfit with the shirt untucked and the same thing happens (in the same place even). So I'm not sure I am convinced the fault lies with the pants/trousers. Although the shirt does "sit" on my lap, thus constraining the movement of the front half of the bottom of my shirt, the same way pants would.