If someone looking for the solution.
You need to wait the chart rendered its elements (like a bar).
I added a Thread.Sleep(1000) after the forced rendered and before to save the visual as png. And it work !
chart.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
chart.Arrange(new Rect(userControl.DesiredSize));
Thread.Sleep(900);
// and save as png
Many thanks to Gerry in comments !