/// <summary> /// Stops input handling. /// </summary> public void Stop() { // Deregister all events if (m_rendererElement != null) { SeeingSharpRendererElement rendererElement = m_rendererElement; m_rendererElement.Dispatcher.BeginInvoke(new Action(() => { rendererElement.MouseWheel -= OnRendererElement_MouseWheel; rendererElement.MouseDown -= OnRendererElement_MouseDown; rendererElement.MouseUp -= OnRendererElement_MouseUp; rendererElement.MouseMove -= OnRendererElement_MouseMove; rendererElement.MouseLeave -= OnRendererElement_MouseLeave; rendererElement.LostFocus -= OnRendererElement_LostFocus; rendererElement.LostKeyboardFocus -= OnRendererElement_LostKeyboardFocus; rendererElement.GotFocus -= OnRenderElement_GotFocus; rendererElement.PreviewMouseUp -= OnRendererElement_PreviewMouseUp; })); } m_rendererElement = null; m_stateKeyboard = new KeyboardState(); m_stateMouseOrPointer = new MouseOrPointerState(); }
/// <summary> /// Starts input handling. /// </summary> /// <param name="viewObject">The view object (e. g. Direct3D11Canvas).</param> public void Start(IInputEnabledView viewObject) { m_rendererElement = viewObject as SeeingSharpRendererElement; if (m_rendererElement == null) { throw new ArgumentException("Unable to handle given view object!"); } // Register all events needed for mouse camera dragging m_rendererElement.Dispatcher.BeginInvoke(new Action(() => { m_rendererElement.MouseWheel += OnRendererElement_MouseWheel; m_rendererElement.MouseDown += OnRendererElement_MouseDown; m_rendererElement.MouseUp += OnRendererElement_MouseUp; m_rendererElement.MouseMove += OnRendererElement_MouseMove; m_rendererElement.MouseLeave += OnRendererElement_MouseLeave; m_rendererElement.GotFocus += OnRenderElement_GotFocus; m_rendererElement.LostFocus += OnRendererElement_LostFocus; m_rendererElement.LostKeyboardFocus += OnRendererElement_LostKeyboardFocus; m_rendererElement.PreviewMouseUp += OnRendererElement_PreviewMouseUp; m_rendererElement.KeyUp += OnRendererElement_KeyUp; m_rendererElement.KeyDown += OnRendererElement_KeyDown; })); }