Это, вероятно, обходной путь, но вы можете найти некоторые полезные вещи в javascript и XAML от SilverlightEarth.com , который является клиентом карты-плитки на основе Silverlight 1.0. Он может загружать VE, Google, Yahoo (есть версия DeepZoom , которая также может загружать OpenStreetMap, Moon и Mars; но поскольку он использует MSI, он не очень помогает на WPF 3 / 3.5).
Хотя javascript немного неопрятен, вы можете ясно видеть, что он создает холст Silverlight 1.0 Xaml (динамического размера), заполняет его плитками (элементы управления изображением) и обрабатывает запросы на увеличение / уменьшение и панорамирование. Вам нужно разобраться во всем javascript и преобразовать его в C # - XAML должен в основном входить в WPF без изменений. Я проверил этот Silverlight 1.0 с пирамидой тайлов Deep Zoom (и здесь ), поэтому концепции применимы (т. Е. Не только для карт).
Я знаю, что это работает, потому что я сделал это сам, чтобы построить вьюер карт в Geoquery2008.com ( снимок экрана ), который является WPF / c #. К сожалению, сборки Geoquery2008 запутаны, но вы все равно можете почерпнуть некоторые идеи или полезный код через DASM / Reflector. Это все еще бета, поэтому я бы не стал утверждать, что это сделано на 100%. Я на самом деле не думал о выделении кода карты в отдельный элемент управления, но, может быть, я посмотрю на это, если другой не появится ...
Между прочим, я также начал с ScrollViewer, но планирую отказаться от него и имитировать JavaScript более близко, чтобы было легче повторно использовать объекты Image при панорамировании / масштабировании (получая больший контроль над процессом, чем обеспечивает ScrollViewer).
Эти страницы MSDN в системе плиток Virtual Earth и в формате Deep Zoom и связанные с ними ссылки, вероятно, также являются полезными ссылками.
Наконец - я думаю, вы видели с этого поста, что DeepZoom / MultiScaleImage, вероятно, будет в .NET 4.0 / Studio 2010 .