現在我有兩個滾動查看器,他們都需要始終具有相同的偏移量。同步兩個滾動查看器之間的偏移
我現在使用的(工作)解決方案是使用ScrollChanged事件。 如果ScrollChanged事件被觸發該代碼被執行:
scrollViewer.ScrollToHorizontalOffset(offset.X);
scrollViewer.ScrollToVerticalOffset(offset.Y);
事實是,我想盡量避免這種代碼隱藏解決方案。
我認爲這個問題最好的解決辦法是這樣的(綁定):
<ScrollViewer x:Name="scrollviewer_Top" HorizontalOffset="{Binding ElementName=scrollViewer_Center, Path=HorizontalOffset}">...</ScrollViewer>
<ScrollViewer x:Name="scrollViewer_Left" VerticalOffset="{Binding ElementName=scrollViewer_Center, Path=VerticalOffset}" >...</ScrollViewer>
<ScrollViewer x:Name="scrollViewer_Center" HorizontalOffset="{Binding ElementName=scrollviewer_Top, Path=HorizontalOffset}"
VerticalOffset="{Binding ElementName=scrollViewer_Left, Path=VerticalOffset}">...</ScrollViewer>
現在,當我嘗試建立我得到了一些錯誤(HorizontalOffset/VerticalOffset不能設置,因爲它不有一個可訪問的集訪問者)。
任何人都知道這是否是最好的解決方案以及如何處理錯誤?或者我應該留在代碼隱藏事件?
感謝
在這種情況下,使用後面的代碼可能是最簡單的解決方案,所以我會堅持下去。如果您使用MVVM,這也是可以接受的,因爲這完全是查看邏輯。 –
horizonatloffset和verticaloffset是隻讀屬性..你cannaot設置他們的價值喜歡actualheight和實際寬度..這就是爲什麼在xaml scrollviwer沒有顯示horizontaloffset和verticaloffset.and我想你面臨的問題,因爲只有 –
@阿迪萊斯特。是的,我會堅持使用代碼。似乎沒有其他解決方案。 –