gpt4 book ai didi

mvvm - SciChart - 从 MVVM 中的代码缩放和平移

转载 作者:行者123 更新时间:2023-12-04 19:42:52 29 4
gpt4 key购买 nike

我的 UI 中有一些按钮,它们必须左右平移 X 轴,以及放大或缩小。问题是它是 MVVM,所以我不能只做像 XAxis.Zoom() 这样的事情,因为 View 模型不能直接访问 View 。我可以在 xaml 中定义的所有缩放修饰符似乎都可以直接在控件上处理对鼠标/触摸事件的 react 。如何在不违反 MVVM 约束的情况下通过代码操纵轴?

编辑:我还应该补充一点,我使用的是 SciChart 版本 3.3.1,当前迭代中没有空间更新到可能会破坏 API 更改的新主要版本。

最佳答案

从 ViewModel 控制视口(viewport)缩放的最简单方法是绑定(bind)到 VisibleRange,例如

查看

<s:SciChartSurface>
<!-- RenderableSeries omitted -->

<s:SciChartSurface.XAxis>
<s:NumericAxis VisibleRange="{Binding XVisibleRange}"/>
</s:SciChartSurface.XAxis>

<s:SciChartSurface.YAxis>
<s:NumericAxis VisibleRange="{Binding YVisibleRange}"/>
</s:SciChartSurface.YAxis>
</s:SciChartSurface>

View 模型

// Viewmodel, I assume you will implement INotifyPropertyChanged 

public DoubleRange XVisibleRange { get;set; }
public DoubleRange YVisibleRange { get;set; }

此技术用于许多 SciChart Examples to provide scrolling .

ChartModifier API

如果您希望直接在轴上调用 Zoom()、Scroll() 方法,最好的方法是在 ChartModifier API 中.

使用此 API,您可以创建许多对鼠标按钮、键输入使用react的行为,并且可以直接访问 XAxis、YAxis、RenderableSeries,以便您可以缩放和平移。

有创建custom modifiers which can zoom and pan here的例子.可以在这些类中以编程方式缩放平移,因此我建议将您的事件或消息路由到 ChartModifierBase 派生类以操作图表。

关于mvvm - SciChart - 从 MVVM 中的代码缩放和平移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36692995/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com