簡體   English   中英

WPF:如何以編程方式從ScrollViewer中提取滾動條?

[英]WPF: How to extract Scrollbar From ScrollViewer programmatically?

我想從我的ScrollViewer中訪問Scrollbar。

我認為它隱藏在ScrollViewer模板中的某個地方,有沒有辦法讓我訪問,並以編程方式獲取它的引用?

所以,如果我有

<ScrollViewer x:Name="myScrollViewer">

在我想要的代碼中:

ScrollBar scrollBar = myScrollViewer.GetScrollBar();

(顯然,我認為它比那更棘手)

我想我明白了......

myScrollViewer.ApplyTemplate();

ScrollBar s = myScrollViewer.Template.FindName("PART_VerticalScrollBar", myScrollViewer) as ScrollBar;

您需要使用VisualTreeHelper.GetChild方法遍歷ScrollViewer的可視樹以查找ScrollBar

由於此方法提供了非常低級的功能,並且在高級代碼中使用它會很痛苦,您可能希望利用LINQ這樣的包裝器來實現可視化樹

從這篇博客文章中獲取VisualTreeEnumerator代碼。

有了這個擴展類: -

ScrollBar s = myScrollViewer.Decendents()
                 .OfType<ScrollBar>()
                 .FirstOrDefault(sb => sb.Name == "PART_VerticalScrollBar");

暫無
暫無

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

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