public override void OnApplyTemplate() { base.OnApplyTemplate(); _dragEnabledArea = GetTemplateChild("PART_DragArea") as FrameworkElement; if (_dragEnabledArea != null) { _dragEnabledArea.MouseDown += new MouseButtonEventHandler(OnDragMouseDown); _dragEnabledArea.MouseMove += new MouseEventHandler(OnDragMouseMove); _dragEnabledArea.MouseUp += new MouseButtonEventHandler(OnDragMouseUp); _dragEnabledArea.MouseLeave += new MouseEventHandler(OnDragMouseLeave); } if (_dragEnabledArea != null) { _dragEnabledArea.InputBindings.Add(new InputBinding(ManagedContentCommands.Close, new MouseGesture(MouseAction.MiddleClick))); } if (_dragEnabledArea != null && _dragEnabledArea.ContextMenu == null) { _dragEnabledArea.MouseRightButtonDown += (s, e) => { // HACK: WPF still calls MouseRightButtonDown even if this managed content was just closed, // causing an exception (SD-1858). So avoid handling this event if the ManagedContent was unloaded. if (!e.Handled && this.IsLoaded) { Activate(); if (_dragEnabledArea.ContextMenu == null) { Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(delegate { ContainerPane.OpenOptionsMenu(null); })); } e.Handled = true; } }; } }
public override void OnApplyTemplate() { base.OnApplyTemplate(); _dragEnabledArea = GetTemplateChild("PART_DragArea") as FrameworkElement; if (_dragEnabledArea != null) { _dragEnabledArea.MouseDown += new MouseButtonEventHandler(OnDragMouseDown); _dragEnabledArea.MouseMove += new MouseEventHandler(OnDragMouseMove); _dragEnabledArea.MouseUp += new MouseButtonEventHandler(OnDragMouseUp); _dragEnabledArea.MouseLeave += new MouseEventHandler(OnDragMouseLeave); } if (_dragEnabledArea != null) { _dragEnabledArea.InputBindings.Add(new InputBinding(ManagedContentCommands.Close, new MouseGesture(MouseAction.MiddleClick))); } if (_dragEnabledArea != null && _dragEnabledArea.ContextMenu == null) { _dragEnabledArea.MouseRightButtonDown += (s, e) => { if (!e.Handled) { Activate(); if (_dragEnabledArea.ContextMenu == null) { Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(delegate { ContainerPane.OpenOptionsMenu(null); })); } e.Handled = true; } }; } }