Может быть, я совершенно не прав, но я подозреваю, что это может быть проблема синхронизации.
Если я сделаю
private void UserControl_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
timer = new DispatcherTimer();
timer.Interval = new TimeSpan(0, 0, 0, 0, 20);
timer.Tick += (s, e2) =>
{
var generalTransform = scrollViewer.TransformToVisual(MapCanvas);
timer.Stop();
};
timer.Start();
}
, ошибка больше не возникает ...
Полагаю, это потому, что элементы управления не были «визуально» отображены на экране?