protected override void OnAttached()
        {
            var textProperty = AssociatedObject.GetDependencyProperties(true).FirstOrDefault(dp => dp.Name == nameof(AssociatedObject.Text));

            if (textProperty == null)
            {
                throw new ArgumentException($"Unable to find public property '{nameof(AssociatedObject.Text)}' on object of type '{AssociatedObject.GetType().FullName}'.");
            }

            propertyWatcher.Attach(AssociatedObject);
            propertyWatcher.RegisterValueChangedHandler(textProperty, OnTextChanged);

            var adornerLayer = AdornerLayer.GetAdornerLayer(AssociatedObject);

            if (adornerLayer != null)
            {
                adorner = new HighlightBorderAdorner(AssociatedObject)
                {
                    BackgroundBrush    = null,
                    BorderBrush        = BorderBrush,
                    BorderCornerRadius = BorderCornerRadius,
                    BorderThickness    = BorderThickness,
                    State = HighlightAdornerState.Hidden,
                };
                adornerLayer.Add(adorner);
            }
        }
Esempio n. 2
0
        private static void ActivateWindowAdorners([NotNull] Window window)
        {
            var elements = WindowToElementsLookup[window];

            foreach (var element in elements.Where(e => e.IsVisible))
            {
                var behaviors = (BehaviorCollection)element.GetValue(BehaviorsProperty);
                if (behaviors != null)
                {
                    foreach (var behavior in behaviors.OfType <IDragDropBehavior>())
                    {
                        if (!behavior.CanDrop || (behavior.DisplayDropAdorner & dataType) == 0)
                        {
                            continue;
                        }

                        var adornerLayer = AdornerLayer.GetAdornerLayer(element);
                        if (adornerLayer == null)
                        {
                            continue;
                        }

                        adornerLayer.IsHitTestVisible = false;
                        var adorner = new HighlightBorderAdorner(element)
                        {
                            State = HighlightAdornerState.Visible
                        };
                        adornerLayer.Add(adorner);
                        DropAdorners[element] = Tuple.Create(adornerLayer, adorner);
                    }
                }
            }
        }
Esempio n. 3
0
        private void OnAssociatedObjectLoaded(object sender, RoutedEventArgs e)
        {
            var textBoxes = AssociatedObject.FindVisualChildrenOfType <TextBoxBase>();

            textBoxes.ForEach(x =>
            {
                x.Validating += OnValidating;
                x.TextToSourceValueConversionFailed += OnTextToSourceValueConversionFailed;
            });

            var adornerLayer = AdornerLayer.GetAdornerLayer(AssociatedObject);

            if (adornerLayer != null)
            {
                textBoxAndAdorners = textBoxes.Select(textBox =>
                {
                    var adorner = new HighlightBorderAdorner(textBox)
                    {
                        BackgroundBrush    = null,
                        BorderBrush        = BorderBrush,
                        BorderCornerRadius = BorderCornerRadius,
                        BorderThickness    = BorderThickness,
                        State = HighlightAdornerState.Hidden,
                    };
                    adornerLayer.Add(adorner);
                    return(new TextBoxAndAdorner(textBox, adorner));
                }).ToArray();
            }
        }
        protected override void OnAttached()
        {
            var adornerLayer = AdornerLayer.GetAdornerLayer(AssociatedObject);

            if (adornerLayer != null)
            {
                adorner = new HighlightBorderAdorner(AssociatedObject)
                {
                    BackgroundBrush    = null,
                    BorderBrush        = BorderBrush,
                    BorderCornerRadius = BorderCornerRadius,
                    BorderThickness    = BorderThickness,
                    State = HighlightAdornerState.Hidden,
                };
                adornerLayer.Add(adorner);
            }

            AssociatedObject.Validating += OnValidating;
            AssociatedObject.TextToSourceValueConversionFailed += OnTextToSourceValueConversionFailed;

            base.OnAttached();
        }
Esempio n. 5
0
 public TextBoxAndAdorner(TextBoxBase textBox, HighlightBorderAdorner adorner)
 {
     TextBox = textBox;
     Adorner = adorner;
 }