Exemplo n.º 1
0
        private IHelpTextProvider FindHelpTextProvider(DependencyObject child)
        {
            IHelpTextProvider htp = WpfUtils.FindVisualParents <ButtonBase>(child)
                                    .Where(n => n.Command is IHelpTextProvider)
                                    .Where(n => (n.Command as IHelpTextProvider).Help != null)
                                    .Select(n => n.Command as IHelpTextProvider).FirstOrDefault();

            if (htp == null)
            {
                htp = WpfUtils.FindVisualParents <MenuItem>(child)
                      .Where(n => n.Command is IHelpTextProvider)
                      .Where(n => (n.Command as IHelpTextProvider).Help != null)
                      .Select(n => n.Command as IHelpTextProvider).FirstOrDefault();
            }

            if (htp == null)
            {
                htp = WpfUtils.FindVisualParents <FrameworkElement>(child)
                      .Where(n => n.DataContext is IHelpTextProvider)
                      .Where(n => (n.DataContext as IHelpTextProvider).Help != null)
                      .Select(n => n.DataContext as IHelpTextProvider).FirstOrDefault();
            }

            return(htp);
        }
Exemplo n.º 2
0
        private void OnHelpTextProvider(IHelpTextProvider htp)
        {
            if (!Object.ReferenceEquals(htp, helpTextProvider))
            {
                helpTextProvider = htp;

                if (Object.ReferenceEquals(dispatcherTimer, null))
                {
                    dispatcherTimer          = new DispatcherTimer();
                    dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 100);
                    dispatcherTimer.Tick    += new EventHandler(OnTimer);
                    dispatcherTimer.Start();
                }
            }
        }