private DependencyObject FindAncestorOfType(Type type, int level, DependencyObject d, bool isTracing) { if (type == null) { if (TraceData.IsEnabled) { TraceData.Trace(TraceEventType.Error, TraceData.RefAncestorTypeNotSpecified); } return(null); } if (level < 1) { if (TraceData.IsEnabled) { TraceData.Trace(TraceEventType.Error, TraceData.RefAncestorLevelInvalid); } return(null); } // initialize search to start at the parent of the given DO FrameworkObject fo = new FrameworkObject(d); fo.Reset(fo.GetPreferVisualParent(true).DO); while (fo.DO != null) { if (isTracing) { TraceData.Trace(TraceEventType.Warning, TraceData.AncestorLookup( type.Name, TraceData.Identify(fo.DO))); } if (type.IsInstanceOfType(fo.DO)) // found it! { if (--level <= 0) { break; } } fo.Reset(fo.PreferVisualParent.DO); } return(fo.DO); }
// Token: 0x06007608 RID: 30216 RVA: 0x0021A9AC File Offset: 0x00218BAC private DependencyObject FindAncestorOfType(Type type, int level, DependencyObject d, bool isTracing) { if (type == null) { if (TraceData.IsEnabled) { TraceData.Trace(TraceEventType.Error, TraceData.RefAncestorTypeNotSpecified); } return(null); } if (level < 1) { if (TraceData.IsEnabled) { TraceData.Trace(TraceEventType.Error, TraceData.RefAncestorLevelInvalid); } return(null); } FrameworkObject frameworkObject = new FrameworkObject(d); frameworkObject.Reset(frameworkObject.GetPreferVisualParent(true).DO); while (frameworkObject.DO != null) { if (isTracing) { TraceData.Trace(TraceEventType.Warning, TraceData.AncestorLookup(new object[] { type.Name, TraceData.Identify(frameworkObject.DO) })); } if (type.IsInstanceOfType(frameworkObject.DO) && --level <= 0) { break; } frameworkObject.Reset(frameworkObject.PreferVisualParent.DO); } return(frameworkObject.DO); }