private static void HandleBringIntoView(object sender, RequestBringIntoViewEventArgs e) { if (e.TargetObject == sender) { return; } TimelineTreeRow timelineTreeRow = (TimelineTreeRow)sender; InlineStringEditor inlineStringEditor = timelineTreeRow.FindName("ItemTitle") as InlineStringEditor; if (inlineStringEditor == null || !inlineStringEditor.IsEditing || e.TargetRect.IsEmpty) { return; } timelineTreeRow.BringIntoView(new Rect(e.TargetRect.X, e.TargetRect.Y, inlineStringEditor.ActualWidth, inlineStringEditor.ActualHeight)); e.Handled = true; }