private static void OnAdornmentAttached(DependencyObject d, DependencyPropertyChangedEventArgs args)
        {
            var element = d as FrameworkElement;

            if (element == null)
            {
                return;
            }

            UIElement adornment = (UIElement)args.NewValue;

            var adorner = GetHwndAdorner(element);

            if (adornment != null)
            {
                if (adorner == null)
                {
                    SetHwndAdorner(element, adorner = new HwndAdorner(element));
                }

                adorner.Adornment = adornment;
            }

            else
            {
                if (adorner != null)
                {
                    adorner.Dispose();
                    SetHwndAdorner(element, null);
                }
            }
        }
 private static void SetHwndAdorner(DependencyObject element, HwndAdorner value)
 {
     element.SetValue(HwndAdornerProperty, value);
 }
Пример #3
0
 public HwndHostPresenter()
 {
     m_hwndAdorner = new HwndAdorner(this);
     AddLogicalChild(m_hwndAdorner.Root);
 }