Esempio n. 1
0
        private static void OnIDChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            if ((e.NewValue == null) || !(d is UIElement))
            {
                return;
            }

            SwitchPresenter parentPresenter = VisualTreeHelperEx.FindAncestorByType <SwitchPresenter>(d);

            if (parentPresenter != null)
            {
                parentPresenter.RegisterID(e.NewValue as string, d as FrameworkElement);
            }
            else
            {
                d.Dispatcher.BeginInvoke(DispatcherPriority.Loaded,
                                         (ThreadStart) delegate()
                {
                    parentPresenter = VisualTreeHelperEx.FindAncestorByType <SwitchPresenter>(d);
                    if (parentPresenter != null)
                    {
                        parentPresenter.RegisterID(e.NewValue as string, d as FrameworkElement);
                    }
                });
            }
        }