
實現單一視窗載入最多四個地圖,各地圖支援獨立資料顯示,且縮放、拖曳操作可即時同步至其他地圖。
ViewMap : UserControl,內含地圖控件、資料載入、圖元渲染等所有邏輯。ViewMap 中定義 MapZoomed、MapPanned 等自訂事件。ViewMap 實例,訂閱其事件並在事件處理器中呼叫其他實例的同步方法。public partial class ViewMap : UserControl
{
public event Action<double, double> MapZoomed; // 縮放等級、中心點
public event Action<Point> MapPanned; // 平移位移
private void OnMapZoomed(double level, Point center)
{
MapZoomed?.Invoke(level, center);
}
// 其他事件觸發...
}
父視窗處理:
private void ViewMap_MapZoomed(double level, Point center)
{
foreach (var vm in mapViews)
{
if (vm != sender) vm.SyncZoom(level, center);
}
}
此架構確保各地圖資料隔離,操作同步流暢。