Skip to main content
All docs
V24.1

ThemedWindow.SearchItemDisplayMode Property

Gets or sets how to show the search box in the ThemedWindow header. This search box allows users to look for Ribbon items. This is a dependency property.

Namespace: DevExpress.Xpf.Core

Assembly: DevExpress.Xpf.Core.v24.1.dll

NuGet Package: DevExpress.Wpf.Core

Declaration

public SearchItemDisplayMode SearchItemDisplayMode { get; set; }

Property Value

Type Description
SearchItemDisplayMode

The mode

Available values:

Name Description
Hidden

Indicates that the search item is hidden.

Title

The search item trails the window header content.

Right

The search item is displayed to the right of header content.

Remarks

You can show the search box in the ThemedWindow with the Ribbon control integrated. For more information on how to add a Ribbon to a ThemedWindow, refer to the following help topic: Ribbon Control – Integration With the ThemedWindow.

Initially, the search box is hidden (SearchItemDisplayMode is set to Hidden). Set the SearchItemDisplayMode property to Title or Right to show the search box in the ThemedWindow header to the right of header content or in the top-right window corner. A user should type a search string in the text box to search against Ribbon control’s items (BarButtonItem and its descendants). The ThemedWindow looks for the search string’s occurrences among bar item content. After the drop-down list of search results appears, a user can select an action to execute it:

DevExpress ThemedWindow for WPF with the search box enabled

<dx:ThemedWindow ...
        xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
        SearchItemDisplayMode="Title">

The ThemedWindow starts a search with a delay. You can use the SearchDelay property to specify the delay in milliseconds.

Items in the result list display icons and text specified by BarItem.Glyph and BarItem.Content properties. Each result also displays item location within the Ribbon. You can set the ShowDescriptionInSearchResults property to false to hide locations:

ShowDescriptionInSearchResults = “True” ShowDescriptionInSearchResults = “False”
DevExpress ThemedWindow for WPF - ShowDescriptionInSearchResults is enabled DevExpress ThemedWindow for WPF - ShowDescriptionInSearchResults is disabled

You can define the ThemedWindow.SearchItemTemplate property to apply a custom template to the search item. For example, you can specify the search item’s appearance settings.

Activate Search Hotkey

You can use the Ctrl + F shortcut to activate the search box. Use the SearchItemFocusShortcut property to change the shortcut.

<dx:ThemedWindow ...
    SearchItemFocusShortcut="Alt+S">

Set the attached BarItemSearchSettings.HideFromSearch property to true for a BarButtonItem if you want to exclude it from search results.

The following example hides Button1 from search:

<dxb:BarButtonItem x:Name="Button1" Content="Button1" ItemClick="Button1_OnItemClick" 
                   dxb:BarItemSearchSettings.HideFromSearch="True"/>

Configure the List of Results

The ThemedWindow exposes the following events that you can use to access searchable items and configure the list of search results:

ItemsRequested

Occurs when a list of all searchable bar button items in the ThemedWindow’s Ribbon is obtained. In the event handler, use the e.Items property to access the items. The e.SearchString property returns the search query.

void MainWindowOnItemsRequested(object sender, RoutedItemsArgs e) {
    foreach (BarButtonItem item in e.Items) {
        // Do something.
    }
}
ItemFiltering

Occurs for each searchable item in the ThemedWindow’s Ribbon so you can exclude the item based on a condition. In the event handler, use the e.Item property to access the item. The e.SearchString property returns the search query. Set the e.Visible property to false to hide the item from the results list.

The following code snippet hides the button that says “Cut”:

    void MainWindowOnItemFiltering(object sender, RoutedFilteringArgs e) {
        BarButtonItem barButtonItem = e.Item as BarButtonItem;
        if (barButtonItem != null && barButtonItem.Content.ToString() == "Cut") {
            e.Visible = false;
            e.Handled = true;
        }
    }
ItemsFiltered

Occurs after events above, before the drop-down list appears. In the event handler, use the e.ItemLinks property to access the list of item link objects. The e.SearchString property returns the search query.

void MainWindowOnItemsFiltered(object sender, RoutedItemLinksArgs e) {
    foreach (BarButtonItemLink item in e.ItemLinks) {
        // Do something.
    }
}
See Also