private static void OnIsShowingChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var element = (UIElement)d; if (Equals(e.NewValue, true)) { var adorner = element.GetAdorner(); if (adorner == null) { adorner = TemplatedAdorner.Create(element, (ControlTemplate)element.GetValue(TemplateProperty)); element.SetAdorner(adorner); } AdornerService.Show(adorner); } else { var adorner = element.GetAdorner(); if (adorner != null) { AdornerService.Remove(adorner); } element.ClearValue(AdornerProperty); } }
private static void OnIsShowingChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var element = (UIElement)d; if (Equals(e.NewValue, true)) { var adorner = element.GetAdorner(); if (adorner == null) { adorner = new ContentAdorner(element); element.SetAdorner(adorner); } SetIfNotNull(d, ContentProperty, adorner, ContentAdorner.ContentProperty); SetIfNotNull(d, ContentTemplateProperty, adorner, ContentAdorner.ContentTemplateProperty); SetIfNotNull(d, ContentTemplateSelectorProperty, adorner, ContentAdorner.ContentTemplateSelectorProperty); SetIfNotNull(d, ContentPresenterStyleProperty, adorner, ContentAdorner.ContentPresenterStyleProperty); AdornerService.Show(adorner); } else { var adorner = element.GetAdorner(); if (adorner != null) { AdornerService.Remove(adorner); } element.ClearValue(AdornerProperty); } }
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(condition: false, message: "Already visible"); } } else { var adorner = textBox.GetAdorner(); if (adorner != null) { AdornerService.Remove(adorner); textBox.ClearValue(AdornerProperty); } } }