Search code examples
wpf

Prevent Automatic Horizontal Scroll in TreeView


Whenever a node is selected in my treeview, it automatically does a horizontal scroll to that item. Is there a way to disable this?


Solution

  • Handle the RequestBringIntoView event and set Handled to true, and the framework won't try to bring the item into view. For example, do something like this in your XAML:

    <TreeView>
        <TreeView.ItemContainerStyle>
            <Style TargetType="TreeViewItem">
                <EventSetter Event="RequestBringIntoView" Handler="TreeViewItem_RequestBringIntoView"/>
            </Style>
        </TreeView.ItemContainerStyle>
    </TreeView>
    

    And then this in your code-behind:

    private void TreeViewItem_RequestBringIntoView(object sender, RequestBringIntoViewEventArgs e)
    {
        e.Handled = true;
    }