我正在使用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(。
有谁知道如何解决这些问题?
Mapsui 在设计时并没有考虑到这一点。如果将事件处理程序分配给 WPF 鼠标按下事件,则可能在其中设置视区。此外,还需要禁止显示常规鼠标事件。也许这可以通过将 MouseLeftButtonDown 事件处理程序设置为 null 来实现。
泛移模式不相关。它旨在限制用户可以平移/缩放的区域。