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); } }
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); } } } }
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(); }
public TextBoxAndAdorner(TextBoxBase textBox, HighlightBorderAdorner adorner) { TextBox = textBox; Adorner = adorner; }