我有一个 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 修改器反向设置为 Enabled。意思是,一次只有其中一个起作用。
我的问题主要在于 RubberBand Mod:
假设我有 5 个图表窗格正在显示并且我想放大;如果我在第三个图表中单击并拖动,每个图表都会正确缩放。如果我单击第三个图表,将鼠标拖到该图表之外(我屏幕上的任何其他位置)并松开,则只有图表 1、2 和 3 被正确缩放。图表 4 和 5 不会让步,表现得好像我只是放大到某个范围。
任何数量的图表窗格都会发生这种情况,并且问题发生在我碰巧放大的任何窗格上。
这几天我一直在解决这个问题,我不知道还能去哪里找。任何帮助是极大的赞赏。