4

我正在开发一个应用程序,它在 wpf 画布中显示巨大的(10000 多个元素)图表。我想要一个像 Visual Studio 中的功能,当您可以拆分编辑器的视图时(这样我可以同时查看同一个图表的两个遥远部分)。

我有一些限制:

  • 图元素的数据绑定(创建绑定)使得大图的加载非常慢,所以我没有使用 MVVM,“VM”知道视图并在需要时直接更新它
  • 画布的子元素是框架元素,因为我使用 Tag 属性
  • 由于图形元素的数量,我不想为拆分视图的两个部分的每个元素保留两个不同的视图

所以它应该就像在不同的地方显示同一画布的多个部分。您不能在 WPF 中为 FrameworkElements 设置两个父级,因此最简单的方法是毫无疑问的 :(

我有哪些选择?我应该重新考虑我的限制还是有一些解决方法?

如果您需要更多详细信息,请告诉我(这是一个大型应用程序,因此我无法为您提供所有信息)。

编辑:由于我需要正确的输入事件通知,所以不能使用视觉画笔进行复制,因此两个视图都必须是可编辑的。

4

1 回答 1

2

选项:

  • 将相同的数据绑定到两个控件。
  • 使用视觉画笔并在真实控件上复制输入。
  • 创建一个自定义图形控件,可以一次输出图形的两个部分。

如果绑定到两个控件太慢,那么我认为您需要重新考虑您的应用程序。一次显示的数据如此之多,以至于您需要双视图才能看到单独的部分,这一事实令人不安。这应该引发一个危险信号。危险信号会通知您,“我需要什么,我拥有什么是不同的。” 你应该回到绘图板上,找出你真正需要的东西。

否则,最好创建一个自定义控件。即使您只需要显示一小部分,该图也会完整呈现。如果您有自己的自定义控件,则可以通过一次仅渲染可见部分并在控件内拆分来加速整个应用程序。

于 2012-12-19T15:20:57.527 回答