Inheritance: System.Windows.Documents.Adorner
Ejemplo n.º 1
0
        private void AssociatedObjectOnMouseDown(object sender, MouseButtonEventArgs mouseButtonEventArgs)
        {
            // Si ya se está llevando a cabo una operación de arrastre, ¡huye!
            if (_isDragging)
            {
                return;
            }

            if (PrimaryButtonState(mouseButtonEventArgs) == MouseButtonState.Pressed)
            {
                _dragStart  = mouseButtonEventArgs.GetPosition(AssociatedObject);
                _isDragging = true;

                _adornerLayer = AdornerLayer.GetAdornerLayer(AssociatedObject);

                if (_adornerLayer == null)
                {
                    throw new NullReferenceException("No se ha podido obtener la Adorner Layer");
                }


                AssociatedObject.CaptureMouse();
                _adorner = new SelectionAdorner(AssociatedObject)
                {
                    Template = SelectionRectangleTemplate, Left = _dragStart.X, Top = _dragStart.Y
                };
                _adornerLayer.Add(_adorner);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Handles changes to the Template property.
        /// </summary>
        private static void OnTemplateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            SelectionAdorner target      = (SelectionAdorner)d;
            ControlTemplate  oldTemplate = (ControlTemplate)e.OldValue;
            ControlTemplate  newTemplate = target.Template;

            target.OnTemplateChanged(oldTemplate, newTemplate);
        }