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;
                    }
                };
            }
        }
Example #2
0
        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;
                    }
                };
            }
        }