簡體   English   中英

如何重用WPF ScrollViewer創建我自己的可滾動控件?

[英]How to reuse WPF ScrollViewer to create my own scrollable control?

我正在嘗試改善Graph#隨附的圖形繪制控件。 很好,但是當您開始拖動節點時,事情變得一發不可收拾。 這是我第一次接觸WPF,所以這可能是一個新手問題。 :)

我有GraphCanvas控件,上面有節點和邊。 可以在周圍拖動它們以更改其坐標,可能會使它們變為負值。 我想在控件中添加滾動條,以查看畫布的實際尺寸。

為此,我正在考慮將GraphCanvas放入ScrollViewer中。 如果不是一個問題,那將是非常容易和直接的。 當將節點拖動到邊界外時,我可能無法調整GraphCanvas本身的大小,否則會嚴重拖拽。 這也是原始控件的問題(檢查出來,它帶有示例應用程序)。

如果可以將滾動條的大小/位置綁定到GraphCanvas的屬性,那將是很好的,這樣ScrollViewer不會物理滾動任何內容,而只是設置GraphCanvas的屬性。 依次執行所有實際的計算和滾動。

如何才能做到這一點?

好的,我找到了! 三個簡單步驟:

  1. 在自定義控件上實現System.Windows.Controls.Primitives.IScrollInfo
  2. 將您的自定義控件添加到ScrollViewer
  3. ScrollViewer上的CanContentScroll屬性設置為True

瞧!

直接從MSDN檢查此鏈接。 它討論了將幾個控件組合成一個復合控件:

WPF:Windows Presentation Foundation的自定義控件

暫無
暫無

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

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