1

我正在尝试改进 Graph# 附带的图形绘制控件。这很好,但是当您开始拖动节点时,事情就会失控。这是我第一次接触 WPF,所以这可能是一个新手问题。:)

我有 GraphCanvas 控件,上面有节点和边。它们可以被拖动来改变它们的坐标,可能使它们变成负数。我想在控件中添加滚动条,以便查看画布的实际大小。

为此,我正在考虑将 GraphCanvas 放入 ScrollViewer。如果不是因为一个问题,这将非常简单明了。当节点被拖到边界之外时,我可能不会调整 GraphCanvas 本身的大小,否则这会拖得不好。这也是原始控件的问题(检查一下,它带有一个示例应用程序)。

如果我可以将滚动条大小/位置绑定到 GraphCanvas 的属性,那就太好了,这样 ScrollViewer 就不会物理滚动任何东西,而只是设置 GraphCanvas 的属性。这反过来将执行所有实际计算和滚动。

如何才能做到这一点?

4

2 回答 2

1

好的,我找到了!三个简单的步骤:

  1. System.Windows.Controls.Primitives.IScrollInfo在您的自定义控件上实施;
  2. 将您的自定义控件添加到ScrollViewer;
  3. CanContentScroll属性设置ScrollViewerTrue

瞧!

于 2009-08-31T14:39:54.727 回答
0

直接从 MSDN 查看此链接。它谈到将几个控件组合成一个复合控件:

WPF:为 Windows Presentation Foundation 自定义控件

于 2009-08-31T13:24:25.987 回答