c# - 固定在 map 上(如 UI)

标签 c# xaml maps uwp scrollviewer

抱歉,标题不是很清楚,但我不知道如何准确描述我正在寻找的内容。

所以我在滚动查看器中得到的是一个非常大的图像:

<ScrollViewer x:Name="scrollView" ZoomMode="Enabled" HorizontalScrollMode="Enabled" VerticalScrollMode="Enabled" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" MinZoomFactor="1" ViewChanged="scrollView_ViewChanged">
    <Grid Width="{Binding Path=ViewportWidth, ElementName=scrollView}">
        <Image x:Name="img" Source="The Known World.jpg" Stretch="UniformToFill"/>
    </Grid>
</ScrollViewer>

我想放置类似 UI 元素的图钉,这些元素将粘贴到 map 上的某个位置,但不会随滚动查看器一起缩放。就像谷歌地图上的城镇名称一样。我尝试过各种方法,例如:

<Scrollviewer>
    <Grid Width="{Binding Path=ScrollableWidth, ElementName=scrollView}"
          Height="{Binding Path=ScrollableHeight, ElementName=scrollView}">
          <!--Pins here-->
    </Grid>
<Scrollviewer>

但没有任何行为符合预期。我该怎么做才能获得这种行为?

最佳答案

这是一个非常有趣又棘手的问题。 我会用 Canvas 来处理它,我可以用它来将我的图钉正确地放置在图像顶部,并确保无论滚动查看器位置如何,它们的位置都保持固定。

当您说您希望图钉随着滚动查看器缩放时,棘手的部分就出现了。我唯一的想法是你可以尝试跟踪滚动查看器上的缩放比例,并将其倒数应用于引脚(因此,如果滚动查看器缩放比例为 1,则引脚上的比例为 1,在ZoomScale = 2,PinScale = 1/2)

不确定这是否有效,但值得一试。

关于c# - 固定在 map 上(如 UI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37831252/

相关文章:

c# - 如何从 mvc3 中的 Html.ActionLink 中废弃 Controller 名称

c# - 在项目之间共享图像等 Assets 的最佳方式

angular - ngx-leaflet Leaflet, Angular 5 批来自 zone.js 的函数调用

google-maps - 寻找谷歌分析风格的 map 创建应用程序或 api

c# - 通过 Equals 或 HashCode 进行比较。哪个更快?

c# - 如何在处理 WinSCPnet.dll FileTransferProgress 时在 SSIS 脚本任务中使用 DTS.Events.FireInformation()?

wpf - MVVM - 当绑定(bind)属性不存在时隐藏控件

c# - 如果 ObservableCollection,绑定(bind)到文本框的列表将不会更新

Android 在空对象引用上发生 'boolean com.mapbox.mapboxsdk.maps.Style.isFullyLoaded()' 崩溃,

c# - 如何从流中获取字符串数组值?