private static void OnFindInfoCard(object sender, FindInfoCardEventArgs e) { if (e.TargetElement != null) { return; } var obj = sender as DependencyObject; if (obj == null) { return; } if (Current.StopLookingForInfoCard(obj)) { e.Handled = true; e.KeepCurrentActive = true; } else if (InfoCardIsEnabled(obj)) { e.TargetElement = obj; e.Handled = true; } }
private static bool LocateNearestInfoCard(ref DependencyObject obj) { var element = obj as IInputElement; if (element != null) { var e = new FindInfoCardEventArgs(); element.RaiseEvent(e); if (e.TargetElement != null) { obj = e.TargetElement; return(true); } if (e.KeepCurrentActive) { obj = null; return(true); } } return(false); }