【问题标题】:SciChart - Not all chart panes zoom correctlySciChart - 并非所有图表窗格都正确缩放
【发布时间】:2018-07-17 18:30:25
【问题描述】:

我有一个 TabControl,它通过 ItemsControl 包含动态数量的图表窗格。 ItemsControl 的 ItemsTemplate 内部是一个 ScichartSurface,它绑定到 RenderableSeries、XAxis、YAxes 和 VerticalChartGroup。

xaml 看起来像这样:

<s:SciChartSurface name="Chart" RenderableSeries="{Binding rSeries}" XAxis="{Binding xAxis}" YAxes="{Binding yAxes}" s:SciChartGroup.VerticalChartGroup="{Binding vGroup}">

在表面内,我有一个 ModifierGroup,其中包含(按顺序)RubberbandXyZoomModifier (XAxisOnly)、MouseWheelZoomModifier、ZoomPanModifier、ZoomExtentsModifier 和自定义 mod 调用 TimeSegmentSelectionModifier。所有这些修饰符都将其 ReceiveHandledEvents 属性设置为 True,它们都在同一个 MouseEventGroup 下,并且在正常情况下它们似乎都可以正常工作。

注意:Rubberband 和 TimeSegment 修饰符被反向设置为启用。意思是,一次只有其中一个起作用。

我的问题主要在于 RubberBand Mod:

假设我有 5 个图表窗格正在显示并且我想放大;如果我在第三个图表中单击并拖动,每个图表都会正确缩放。 如果我单击第三个图表,将鼠标拖到该图表之外(我屏幕上的任何其他位置)并松开,则只有图表 1、2 和 3 被正确缩放。图表 4 和 5 不会移动,就像我只是放大到某个范围一样。

任何数量的图表窗格都会发生这种情况,并且问题发生在我碰巧放大的任何窗格上。

我这几天一直在解决这个问题,但我不知道还能去哪里找。 非常感谢任何帮助。

【问题讨论】:

    标签: wpf scichart


    【解决方案1】:

    我希望我早点看到这个,但你描述的问题is solved here

    为了同步两个图表,您需要执行以下步骤:

    在根 SciChartSurface.ChartModifier 上设置 MouseManager.MouseEventGroup 附加属性。这会在共享相同 MouseEventGroup ID 的两个或多个图表之间同步鼠标事件。

    在 SciChartSurface 本身上设置 SciChartGroup.VerticalChartGroup 附加属性。这会在多个图表上同步 Y 轴的大小,以便图表对齐

    将 XAxis.VisibleRanges 绑定在一起。这可确保图表在您缩放/平移时始终保持同步(消除舍入误差)。 这些在我们的示例Synchronize Multi Chart Mouse 中进行了演示。

    人们经常会错过最后一步(将轴可见范围绑定在一起)。你的例子是这种情况吗?

    我们这里有一个同步多个图表的教程:

    教程的 Github 源代码可以在 Tutorials 文件夹下的 https://github.com/abtsoftware/scichart.wpf.examples 找到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      • 2018-06-27
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      • 1970-01-01
      相关资源
      最近更新 更多