Каждый раз, когда узел выбран в моем treeview, он автоматически делает горизонтальную прокрутку к тому объекту. Существует ли способ отключить это?
Обработайте событие RequestBringIntoView и установите Handled в true, и фреймворк не будет пытаться отобразить элемент. Например, сделайте в XAML примерно следующее:
<TreeView>
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<EventSetter Event="RequestBringIntoView" Handler="TreeViewItem_RequestBringIntoView"/>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
И затем вот это в code-behind:
private void TreeViewItem_RequestBringIntoView(object sender, RequestBringIntoViewEventArgs e)
{
e.Handled = true;
}