I'm sure our more articulate members will come by and help. My first thoughts are: What is her turn out availibility? What is her diet? Would half halts and circling work?
Beyond that, I got a little Morgan that didn't canter and had to be rejected by her previous owners because of this. When she came she looked like the picture of the Pony Express horse. Running low to the ground. Everything else was good as far as diet and pasture (several hundred acres). Trotting was fine. Great walk.
So I started to let her run. I worked on staying very relaxed and riding with a deep seat while talking calmly (even if it was reciting the ABCs) and using half halts. By the third ride, she relaxed and slowed a bit in response to seat and easy half halts. By the end of two weeks, she had a nice, collected canter.
I didn't fight her, but did spend a lot of time working on this. Oh, in the first week, she stopped abruptly a couple times and then would want to trot while gazing around. I told her if she had that much energy we could lope a bit more, and would urge her forward.
Once she "got it" you could not ride her for weeks and she'd be just fine when you needed her. Never tried to race off. I wondered if she "learned" it was best to conserve energy, or if she became more balanced, or if she had somehow just developed a habit of galloping vs. cantering? Sometimes we don't know.