public void ArrangeOverrideWhenChildIsNull() { var textBox = new TextBox(); var adorner = new WatermarkAdorner(textBox) { Child = null }; var result = ArrangeOverrideMethod.Invoke(adorner, new object[] { new Size(0, 0) }); Assert.AreEqual(new Size(0, 0), result); }
private static void AdornerProperty_ValueChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { TextBoxBase textBox = (TextBoxBase)d; if (e.OldValue != null) { using WatermarkAdorner adorner = (WatermarkAdorner)e.OldValue; AdornerLayer adornerLayer = adorner.FindVisualTreeAncestor <AdornerLayer>() ?? AdornerLayer.GetAdornerLayer(textBox); adornerLayer.Remove(adorner); } if (e.NewValue != null) { AdornerLayer.GetAdornerLayer(textBox).Add((WatermarkAdorner)e.NewValue); } }
private static void OnIsShowingChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ////Debug.Print($"Visible changed to: {e.NewValue}"); var textBox = (TextBox)d; if (Equals(e.NewValue, true)) { var adorner = textBox.GetAdorner(); if (adorner == null) { adorner = new WatermarkAdorner(textBox); textBox.SetAdorner(adorner); var textStyle = textBox.GetTextStyle(); if (textStyle != null) { adorner.SetCurrentValue(WatermarkAdorner.TextStyleProperty, textStyle); } AdornerService.Show(adorner); textBox.SetCurrentValue(AdornerProperty, adorner); } else { Debug.Assert(false, "Already visible"); } } else { var adorner = textBox.GetAdorner(); if (adorner != null) { AdornerService.Remove(adorner); textBox.ClearValue(AdornerProperty); } } }
private static void SetAdorner(this DependencyObject element, WatermarkAdorner value) { element.SetValue(AdornerProperty, value); }