C# 在UWP中拖动面板

C# 在UWP中拖动面板,c#,user-interface,uwp,draggable,C#,User Interface,Uwp,Draggable,你好,我正在处理一个UWP应用程序。我试图创建一个面板,可以从屏幕底部向上拖动。(在应用程序中使用导航时,请参阅windows应用商店中的“地图”应用程序以获取参考)。如下图所示,也可以在地图应用程序中看到。有一个栗色面板,可以上下拖动,并根据需要设置 我想知道的是:## 如何为我的应用程序创建这样一个可拖动的面板 正如您所注意到的,在拖动面板时,贴图图钉和多段线的范围始终位于拖动面板上方的区域。如何做到这一点 图片如下: 注: 地图元素始终在可绘制面板上确定范围。 任何帮助都将是惊人的好

你好,我正在处理一个UWP应用程序。我试图创建一个面板,可以从屏幕底部向上拖动。(在应用程序中使用导航时,请参阅windows应用商店中的“地图”应用程序以获取参考)。如下图所示,也可以在地图应用程序中看到。有一个栗色面板,可以上下拖动,并根据需要设置

我想知道的是:##
  • 如何为我的应用程序创建这样一个可拖动的面板
  • 正如您所注意到的,在拖动面板时,贴图图钉和多段线的范围始终位于拖动面板上方的区域。如何做到这一点

  • 图片如下:

    注: 地图元素始终在可绘制面板上确定范围。
    任何帮助都将是惊人的

    好吧,过了一会儿我终于明白了,这两部分的答案都是:

  • 可拖动面板是WinRT XAML工具包中的
    自定义网格拆分器
    控件。一句忠告,不要只是将
    .dll
    复制粘贴到你的项目中,这会使你的应用程序非常繁重,相反,你可以浏览源代码,然后添加类和“resourceDictionary”
  • MapElements的范围始终位于面板顶部,因为点击使用
    TrySetViewBounds
    方法设置视图,而较低面板的高度提供了从底部到MapElements要提供的边距 我可以提供代码,但是它非常简单

    2021年的答案要更新一点

    您所描述的似乎是Windows社区工具包中的组件

    您可以直接从NuGet安装
    Microsoft.Toolkit.Uwp.UI.Controls
    ,然后按以下方式使用
    GridSplitter
    元素(文档中的示例):

    
    
    您可以尝试旋转
    拆分视图
    控件,这样可以创建一个可滑动控件。对于第二个问题,您可以尝试使用mapcontrol的
    TrySetViewAsync
    方法在滑动窗格时重置地图视图。感谢您回来。是的,我可以使用TrySetViewAsyc方法,但问题是地图保持全屏,下面板是覆盖元素,因此TrySetViewAsyc方法不会更改视图,因为地图已经居中。我认为在这种情况下需要重新居中地图,
    TrySetViewAsync
    方法可以帮助居中和缩放,但我们需要根据滑动期间的窗格打开高度计算新的中心点和缩放级别。这不是一件容易的工作。我也在想同样的问题。目前,我正在使用覆盖面板的新高度,并在此基础上添加或减去地图中心的纬度值。但它高度基于点击和尝试,可能无法适应屏幕大小。我提出这个问题是为了找到更好的方法来解决这个问题。基于当前可用的API,我也没有更好的想法。事实上,我尝试了一个演示,在滑动窗格时一起调整地图控件的大小和缩放,但结果并不理想,地图在调整大小时会闪烁,因此经过几个小时的尝试,我写了一条评论作为建议,而不是发布一个演示作为答案。