我使用Mapsui作为C#应用程序中的地图控件。默认情况下,通过使用鼠标左键拖动来启动平移。我想将此更改为鼠标中键。
有人知道怎么做吗?
Mapsui有一个名为PanMode的对象,您可以创建一个实例,如下所示,但我相信它只是一个在平移时将地图居中的枚举:
Mapsui.UI.PanMode panMode = new PanMode();编辑:
基于pauldendulk的回答(感谢您的支持),我认为我需要这样做:
首先,捕捉鼠标中键并将其传递给mapsui的left按钮方法。不幸的是,MapControlMouseLeftButtonDown()是一个私有方法,所以它不能工作。
MyMapControl.MouseDown += MapControlOnMouseButtonDown;
private void MapControlOnMouseButtonDown(object sender, MouseButtonEventArgs e)
{
if(e.ChangedButton == MouseButton.Middle)
{
Mapsui.UI.Wpf.MapControl.MapControlMouseLeftButtonDown(sender, e);
}
}其次,我需要停止原来的左键点击。
MyMapControl.MouseLeftButtonDown += null;同样,这不是正确的语法,因为它会抛出异常(不能为空)。
有人知道如何解决这些问题吗?
发布于 2018-09-11 23:34:30
如果您为WPF的鼠标按下事件分配一个事件处理程序,在其中设置视区,也许是可能的。
PanMode与此无关。它的目的是限制用户可以平移/缩放的区域。
https://stackoverflow.com/questions/52260870
复制相似问题