Trot some figure 8's, then go into a circle and ask for the canter. Do a few circles cantering, then to a trot in the figure 8 again to switch directions, trot as much as needed to rebalance the horse if needed.
Go the other way and ask for canter in the circle. Repeat a few times till they 'get it'.
If this works, gradually make the circles and figure 8's larger and larger until it's an arena size circle and figure 8, ask for the canter in the corners until you have it solid, then you can ask along the rail, and eventually off the rail.
You can try using a ground pole. Trot up then ask for canter over the pole. Do this a few times each way, it may help them figure out how to lift their feet to pick it up. Can also do this with the one above.
From a walk and halt...
Walk then canter the good way. After a few strides halt turn on the haunch, canter off the other way. If they don't get it halt, then trot a small circle going the way you want the lead, walk, then ask again when you hit the rail off the circle. Try it a couple times, if no good then try something else.
Yet another way, similar to way #1 but still different.
Canter the good way a few laps to get going forward. Cut across the short side of the arena, when you are about to hit the rail, ask for a trot. Trot 1-2 steps then quickly change directions when you hit the rail and ask for the canter at the same time.
Another thing to think about is shifting the horses hind end in a little bit, lifting the hand/core to tip the nose in, and timing your ask to get it just right.
I think these will also help with flying changes later on if you wan those.