private void ResetAdorners() { // If there is no vertical scrollbar track then there are no adorners to reset if (SearchTicksTrack != null) { var adorners = TreeViewAdornerLayer.GetAdorners(SearchTicksTrack); if (adorners != null) { foreach (var adorner in adorners.OfType <SearchTickAdorner>()) { TreeViewAdornerLayer.Remove(adorner); } } } SearchAdornerDecorator.ResetAdorners(); }
private void ProcessTreeViewItemsInSearchResults() { Debug.Assert(_context != null, "ExplorerFrame was disposed"); var scrollBar = GetVerticalScrollBar(); var addAdorners = scrollBar != null && scrollBar.IsVisible; var explorerSearchResults = ExplorerSearchResults.GetExplorerSearchResults(_context); if (addAdorners) { foreach (var explorerElement in explorerSearchResults.Results) { SearchAdornerDecorator.AddAdorner( TreeViewAdornerLayer, SearchTicksTrack, explorerElement, this); } } if (_searchExpansionInProgress || _modelChangesCommittingInProgress) { // update Next & Previous whether tree is being expanded because // search was initiated by user or because model changes are being committed OnUpdateNextAndPreviousResults(true); // only select the Next or Previous result if search was initiated by user if (_searchExpansionInProgress) { if (explorerSearchResults.CanGoToNextSearchResult) { OnSelectNextSearchResult(); } else if (explorerSearchResults.CanGoToPreviousSearchResult) { OnSelectPreviousSearchResult(); } else { // this has the side-effect of calling Focus() on the selected item FocusExplorerEFElement(GetSelectedExplorerEFElement(), true); } } } }
public SearchTickAdorner(FrameworkElement adornedElement, ExplorerEFElement explorerElement, ExplorerFrame explorerFrame) : this(SearchAdornerDecorator.GetAdornerY(adornedElement, explorerElement, explorerFrame), adornedElement) { AddExplorerElement(explorerElement); }