我正在使用Mapsui作为C#应用程序中的映射控件。 默认情况下,通过使用鼠标左键拖动来启动平移。 我想将其更改为鼠标中键。
有人知道该怎么做吗?
Mapsui有一个名为PanMode的对象,您可以创建一个如下实例,但是,我相信它只是平移时将地图居中的枚举:
Mapsui.UI.PanMode panMode = new PanMode();
编辑:
基于“ pauldendulk”的答案(感谢您的支持),我认为我需要执行以下操作:
首先,单击中键并将其中继到mapsui左键方法。不幸的是,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;
同样,这不是正确的语法,因为它会引发异常(不能为null)。
有人知道如何解决这些问题吗?
答案 0 :(得分:0)
Mapsui在设计时并未考虑到这一点。如果将事件处理程序分配给WPF的鼠标按下事件,则可能在其中设置视口。另外,您需要取消常规鼠标事件。可以通过将MouseLeftButtonDown事件处理程序设置为null来实现。
PanMode不相关。这是为了限制用户可以平移/缩放的区域。