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);
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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);
                }
            }
        }
Exemplo n.º 5
0
 private static void SetAdorner(this DependencyObject element, WatermarkAdorner value)
 {
     element.SetValue(AdornerProperty, value);
 }