2010-11-19 89 views
3

我需要在我使用的Silverlight图表上启用缩放功能 - 目前这是Silverlight Toolkit。据我了解SL Toolkit图表不支持缩放,但我正在考虑实现此功能。到目前为止,我还没有成功:将ScaleTransforms应用到Series元素不能按预期工作。放大Silverlight工具包图表?

任何人都可以提供示例代码实现缩放Silverlight工具包?

+0

您是否尝试将'ScaleTransform'应用于整个图表? – Stephan 2010-11-19 17:12:32

+0

是的:这个系列被放大了,但是挂在了图表上:我想我会需要应用剪切和平移变换来将它移动到正确的位置。此外,效果更像放大镜而不是缩放。 – JohnC 2010-11-22 09:19:25

+2

我刚刚在我的博客中为此写了一个解决方案: http://geoffwebbercross.blogspot.com/2011/02/silverlight-4-toolkit-zoom-and-pan.html – 2011-02-09 17:44:31

回答

6

我以前看着实现缩放的Silverlight工具包图表,但是失败,因为(可能)有以下原因:

  • Silverlight工具包图表似乎并没有被设计成能扩大以便放大。没有任何钩子可以轻松地攻击某些缩放逻辑,如果要在它们上创建缩放,则必须深入研究。
  • 实现缩放的最简单方法是对元素使用ScaleTransform和RenderTransform。对于Silverlight Toolkit,您希望将其应用于该系列。然而只是计算正确的ScaleTransform和OffsetTransform很难不够
  • 缩放时,你不希望所有东西都按比例缩放。如果您在具有点的线条系列上放大4倍,您不希望线条变厚4倍,点数变大4倍。这意味着,即使您已经正确应用了ScaleTransforms和RenderTransforms,您所得到的只是一个放大镜,但仍然很不理想。

几个小时后,我放弃了将这种支持添加到SL工具包图表,而是寻找其他支持缩放的组件,并且有一个体面的API来处理它。这是我发现的组件(虽然我敢肯定还有更多):

总结起来,我觉得你与已经有了变焦实施的组件去它的最简单的方法 - 从我的经验,将采取投资的很多添加适当的缩放+摇摄到Silverlight工具包图表。

+0

我试过ScaleTransform,但遇到了你提到的问题。我会研究你所提及的组件必须提供什么,谢谢! – JohnC 2010-11-22 09:20:36

0

添加到约Telerik的盖尔盖伊Orozy评论:

您可以轻松地用下面的XAML添加缩放功能。

<charting:ChartArea.ZoomScrollSettingsX> 
    <charting:ZoomScrollSettings ScrollMode="ScrollAndZoom" MinZoomRange="0.005"/> 
</charting:ChartArea.ZoomScrollSettingsX> 

您可以点击这里检查出demo和源代码也可以同样的标签。