创建WPF分割图

时间:2015-05-11 12:06:51

标签: wpf canvas diagram

因此,有关于在WPF中创建图表的教程。 http://www.codeproject.com/Articles/24681/WPF-Diagram-Designer-Part

我已经阅读过,并且仍在研究它以完全理解它。

在本教程结束时,您基本上可以添加形状,移动/旋转/缩放它们,并且因为它们是以矢量形式创建的,所以它们保持其分辨率,还有可以将每个形状与另一个形状连接的连接器

我的目标,因为我需要创建一个显示互联网协议如何传递的模拟器,就是创建一个分区图,其中A面与Side B进行通信。它可以读取自动机并模拟图中的过渡。 / p>

我正在考虑如何解决这个问题,因为我在WPF中没有很多知识,我想知道应该以哪种方式实现它。

我应该制作2幅不同的画布吗?或者将两个画布划分为两个画布?

我正在处理的主要问题是,当一个形状被拖动到窗口的末端边缘时,然后窗口允许我滑动它以便我可以看到该字段的其余部分,这是正在完成的通过增加Canvas的大小,如教程第1部分所示。 但是,如果我的画布被两个划分,并且中间有一个边框,我怎样才能为每个边创建两个滑块?

我想知道你是否可以给我任何关于如何接近这个想法的提示,因为我对WPF的了解仍然非常有限。

1 个答案:

答案 0 :(得分:1)

以下是我的观点,但如果您提供更多/更少的应用最终草图,那将非常有用。我建议使用Telerik AppMock,但油漆也足够了;)。

根据我的理解,你应该需要3幅画布。 1-st是左侧的画布。 2-nd是右侧的画布。 三幅画布位于两幅画布的顶部。

如果要拖动元素,必须将单击元素的不透明度设置为有点透明并将其保留在其位置(第一个画布),将拖动元素的副本添加到第三个画布。当你执行leftmousebuttonup(拖放拖动项目)时,你必须检查它被丢弃的位置,如果它是在第二个画布上的droppend,你将它添加到这个画布。要在画布上定位元素,您可以使用Canvas.SetLeft和相应的SetRight方法。

您可以将第一幅和第二幅画放入网格中。即使Canvases在Grid中更大,视图也只会切割到Grid的大小。 此外,为了允许画布操作,在那里(向网格)添加一个滚动查看器,它将Translate Transform赋予其大小的画布。 稍后,尝试使用MVVM模式为您的画布填充数据。

我还建议使用一个可绘制的ObservableColletion(可以使用FrameworkElement作为基类)和可拖动的对象。每个画布都不同。 祝你好运!