这可能是一种迂回的方式,但您可能会在 SilverlightEarth.com 的 javascript 和 XAML 中找到一些有用的东西,这是一个基于 Silverlight 1.0 的地图瓦片客户端。它可以加载 VE、Google、Yahoo(有一个DeepZoom 版本也可以加载 OpenStreetMap、Moon 和 Mars;但由于它使用 MSI,它在 WPF 3/3.5 前端并没有真正的帮助)。
虽然 javascript 有点杂乱,但您可以清楚地看到它正在创建一个 Silverlight 1.0 Xaml(动态大小)画布,用图块(图像控件)填充它并处理放大/缩小和平移请求。您需要了解所有的 javascript 并将其转换为 C# - XAML 应该主要进入 WPF 不变。我已经用 Deep Zoom 平铺金字塔(和这里)测试了这个 Silverlight 1.0,所以这些概念是适用的(即不仅适用于地图)。
我知道这是可行的,因为我自己在Geoquery2008.com(屏幕截图)中构建了地图查看器,它是 WPF/c#。不幸的是,Geoquery2008 程序集被混淆了,但您仍然可以通过 DASM/Reflector 收集一些想法或有用的代码。它仍然是一个测试版,所以我不会声称它已经 100% 完成。我并没有真正想过将地图代码分解到一个单独的控件中,但如果另一个没有出现,我可能会调查一下......
顺便说一句,我也从 ScrollViewer 开始,但我计划放弃它并更密切地模仿 javascript,以便在平移/缩放时更容易重用 Image 对象(通过获得比 ScrollViewer 提供的更多控制过程)。
这些关于Virtual Earth tile 系统和Deep Zoom 文件格式和相关链接的 MSDN 页面可能也是一个有用的参考。
最后 - 我猜你在这篇文章之后已经看到 DeepZoom/MultiScaleImage 很可能在.NET 4.0/Studio 2010中。