private void MainWindow_Loaded(object sender, EventArgs loadedEvent) { MainGrid.SizeChanged += MapHost_SizeChanged; int pixelWidth = (int)MainGrid.ActualWidth; int pixelHeight = (int)MainGrid.ActualHeight; m_mapImage.Init(pixelWidth, pixelHeight, m_oversampleScale); MapHost.Source = m_mapImage; MapHost.Width = pixelWidth; MapHost.Height = pixelHeight; m_mapImage.RespondToResize(pixelWidth, pixelHeight); m_mapImage.IsFrontBufferAvailableChanged += OnIsFrontBufferAvailableChanged; CompositionTarget.Rendering += CompositionTarget_Rendering; MouseLeftButtonDown += (o, e) => { if (m_isInputActive) { m_mapImage.HandlePanStartEvent((int)(e.GetPosition(null).X), (int)(e.GetPosition(null).Y), Keyboard.Modifiers); } }; PreviewMouseLeftButtonUp += (o, e) => { if (m_isInputActive) { m_mapImage.HandlePanEndEvent((int)(e.GetPosition(null).X), (int)(e.GetPosition(null).Y), Keyboard.Modifiers); } }; MouseRightButtonDown += (o, e) => { if (m_isInputActive) { m_mapImage.HandleRotateStartEvent((int)(e.GetPosition(null).X), (int)(e.GetPosition(null).Y), Keyboard.Modifiers); } }; PreviewMouseRightButtonUp += (o, e) => { if (m_isInputActive) { m_mapImage.HandleRotateEndEvent((int)(e.GetPosition(null).X), (int)(e.GetPosition(null).Y), Keyboard.Modifiers); } }; MouseWheel += (o, e) => { if (m_isInputActive) { m_mapImage.HandleZoomEvent((int)(e.GetPosition(null).X), (int)(e.GetPosition(null).Y), e.Delta, Keyboard.Modifiers); } }; MouseLeave += (o, e) => { if (m_isInputActive) { m_mapImage.SetAllInputEventsToPointerUp((int)(e.GetPosition(null).X), (int)(e.GetPosition(null).Y)); } }; MouseMove += (o, e) => { if (m_isInputActive) { m_mapImage.HandleMouseMoveEvent((int)(e.GetPosition(null).X), (int)(e.GetPosition(null).Y), Keyboard.Modifiers); } }; KeyDown += (o, e) => { m_mapImage.HandleKeyboardDownEvent((int)KeyInterop.VirtualKeyFromKey(e.Key)); }; MouseDown += MainWindow_MouseDown; MouseUp += MainWindow_MouseUp; Dispatcher.Hooks.DispatcherInactive += new EventHandler(DispatcherInactive); }
private void OnKeyDown(object sender, KeyEventArgs e) { m_mapImage.HandleKeyboardDownEvent((int)KeyInterop.VirtualKeyFromKey(e.Key)); if (Keyboard.IsKeyDown(Key.LeftCtrl) && Keyboard.IsKeyDown(Key.LeftShift) && Keyboard.IsKeyDown(Key.F)) { SetFullScreen(!m_isFullscreen); } }