由於我目前的項目[Weird scrollbar UI in hosted WPF composite control]中存在一個未解決的問題,因此我不得不推遲使用變通方法。我想到的一個想法是讓ScrollViewer與Windows窗體ScrollBar同步(水平和垂直)。我會怎麼做呢?從本質上講,我希望WinForms滾動條像ScrollViewers一樣工作(就像拖動和事件一樣)。使用WinForms ScrollBar同步WPF ScrollViewer
0
A
回答
0
我設法實現它,而無需太多的WinAPI。以下是我做的:
- 登記的ScrollViewer中一個ScrollOffsetChanged事件處理程序(即執行曝光該事件的IScrollInfo接口的複合控件)。
- 註冊一個ValueChanged事件處理程序與Windows窗體滾動條。
- 一對信號標誌防止循環調用事件處理程序。
- 第一個處理程序調用UpdateExternalScrollBars()函數,該函數使用以下表達式計算Maximium Scrollbar屬性:ScrollViewer-> ExtentHeight/Width - ScrollViewer-> ViewportHeight/Width。 Value屬性直接設置爲ScrollViewer-> Vertical/HorizontalOffset。
- 第二個從窗體窗體滾動條獲取Value屬性並將其傳遞給ScrolViewer-> ScrollToVertial/HorizontalOffset()。信號標誌預先適當設置。
0
我認爲除了發送/收聽低層API Windows消息外,沒有任何其他方式。您應該對Win API有良好的瞭解,以及如何管理它們。我還補充說,滾動是中等複雜的任務來管理,但也許是我...
這裏是vertical scroll message參考。
相關問題
- 1. WPF ScrollBar風格
- 2. WPF:如何使用ScrollBar滾動Grid?
- 3. WPF Scrollviewer當ScrollBar可見時,DesiredSize不會增加
- 4. 當ScrollBar可見時,WPF ScrollViewer顯示邊框
- 5. 使用scrollviewer截圖WPF datagrid
- 6. WPF ScrollViewer
- 7. Wpf Zoombox with ScrollViewer
- 8. Wpf ScrollViewer Scroll Amount
- 9. WPF ScrollViewer問題
- 10. WPF ScrollViewer平移
- 11. wpf scrollviewer scrolltoverticaloffset
- 12. wpf listview itempanel scrollviewer
- 13. ScrollViewer問題,WPF
- 14. 在DropDownButton中使用ScrollBar?
- 15. WPF ListBox模板/樣式(ScrollBar和InnerShadow)
- 16. WP7 ScrollViewer以編程方式滾動背景ScrollViewer與前面的ScrollViewer同步
- 17. WinForm ScrollViewer
- 18. C#同步wpf
- 19. WPF停止ListView ScrollBar點擊
- 20. WPF scrollviewer - 使用多線程訪問
- 21. 的MouseDown上WPF - 使用的ScrollViewer
- 22. ScrollViewer wpf - 不起作用
- 23. ScrollViewer控件在WPF
- 24. 使用StreamSocket在WPF和WinForms
- 25. DataGrid和ScrollBar樣式WPF
- 26. WinForms Webrowser同步滾動
- 27. winforms同步組合框值
- 28. WPF ScrollViewer集合ScrollableHeight
- 29. C#winforms應用程序線程同步
- 30. WPF - 同步動畫
我的印象是WPF使用與Win32/WinForms不同的測量尺度。你會碰巧知道這件事嗎? – shadeMe
我沒有說這很容易。但是,通過在ScrollViewer代碼中窺視,它似乎使用相同的API。換句話說,無論頂層UI如何,滾動條應該總是相同的。 –