簡體   English   中英

垂直滾動條會自動向前“跳躍”

[英]Vertical Scrollbar does automatically “jumping” forward

如果我打開一個Header比控件長的TreeView Item ,滾動條會自動跳到該項的末尾,這可能會非常令人不安。 在此處輸入圖片說明

任何解決方法,以使滾動條不會“自動”跳轉?

您可以嘗試處理TreeViewItem容器的RequestBringIntoView

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

private void OnRequestBringIntoView(object sender, RequestBringIntoViewEventArgs e) => e.Handled = true;

但是請記住,在提問時始終提供一個最小,完整和可驗證的示例

好了,您可以在TreeView的 ScrollViewer中處理ScrollChanged事件。

因此,您可以在此處編寫以下代碼行:

var element1 = VisualTreeHelper.GetChild(sender as TreeView, 0) as X; 
// Where X is the object inside your TreeView. Eg. StackPanel, Border...

var scrollviewer = VisualTreeHelper.GetChild(element1, 0) as ScrollViewer;
//Goes to the beggining of your content
scrollviewer.ScrollToLeftEnd();

// Another way is...
scrollViewer.ScrollToHorizontalOffset(e.HorizontalOffset + e.ExtentHeightChange);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM