2009-08-31 39 views
1

我正在嘗試改進Graph#附帶的圖形繪製控件。這很好,但是當你開始拖拉節點時,事情就會失控。這是我第一次遇到WPF,所以這可能是一個新手問題。 :)如何重用WPF ScrollViewer來創建我自己的可滾動控件?

我有GraphCanvas控件,其上有節點和邊。可以拖動它們改變它們的座標,可能使它們成爲負數。我想向控件添加滾動條,以查看畫布的真實大小。

爲此,我正在考慮將GraphCanvas放在ScrollViewer中。如果不是一個問題,這將是非常簡單和直接的。當一個節點被拖到邊界之外時,我可能不會調整GraphCanvas本身的大小,否則會導致拖動不良。這也是原始控件的問題(查看它,它附帶一個示例應用程序)。

如果我可以將滾動條的大小/位置綁定到GraphCanvas的屬性上,這樣ScrollViewer就不會滾動任何物理內容,而只需設置GraphCanvas的屬性。這反過來會執行所有實際的計算和滾動。

這怎麼辦?

回答

0

請直接從MSDN查看此鏈接。它談論組成幾個控件到一個單一的複合控件:

WPF: Customizing Controls for Windows Presentation Foundation

+0

但是我怎樣才能直接控制滾動條,而不用滾動我的珍貴GraphCanvas? – 2009-08-31 13:26:32

+0

您可以控制組合控件中滾動條的邊界,而不是將它們設置在組合外。 – 2009-08-31 14:07:05

1

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

  1. 對您的自定義控件執行System.Windows.Controls.Primitives.IScrollInfo;
  2. 將您的自定義控件添加到ScrollViewer;
  3. ScrollViewer上的CanContentScroll屬性設置爲True

瞧!

相關問題