.net teechart zoom&;在windows phone 8上滚动

.net teechart zoom&;在windows phone 8上滚动,.net,windows-phone-8,teechart,.net,Windows Phone 8,Teechart,在windows phone 8项目中,我在UserControl中创建了一个TChart,如下所示: Chart.Legend.LegendStyle = LegendStyles.Series; Chart.Legend.Alignment = LegendAlignments.Bottom; Chart.Header.Visible = false; if (Page.ZoomMode) { Chart.Aspect.Gesture

在windows phone 8项目中,我在UserControl中创建了一个TChart,如下所示:

    Chart.Legend.LegendStyle = LegendStyles.Series;
    Chart.Legend.Alignment = LegendAlignments.Bottom;
    Chart.Header.Visible = false;

    if (Page.ZoomMode)
    {
        Chart.Aspect.GestureOptions = Steema.TeeChart.Silverlight.Drawing.Aspect.Gestures.PinchAndDrag;
        Chart.Aspect.GestureStyle = Steema.TeeChart.Silverlight.Drawing.Aspect.GestureStyles.FullChart;
    }
    else
    {
        Chart.Aspect.GestureOptions = Steema.TeeChart.Silverlight.Drawing.Aspect.Gestures.None;
        Chart.Aspect.GestureStyle = Steema.TeeChart.Silverlight.Drawing.Aspect.GestureStyles.InChart;
    }

    var theme = ThemeManager.GetDefaultTChartTheme(Chart.Chart);
    theme.Apply();
UserControl位于数据透视项内。其想法是在缩放模式下锁定轴,以允许图表对拖动和挤压手势做出响应

问题1:在第一次绘制后动态更改Chart.Aspect.GestureStyle和Chart.Aspect.GestureOptions会启动此异常:

System.InvalidOperationException: Element is already the child of another element.
   at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
   at MS.Internal.XcpImports.Collection_AddValue[T](PresentationFrameworkCollection`1 collection, CValue value)
   at MS.Internal.XcpImports.Collection_AddDependencyObject[T](PresentationFrameworkCollection`1 collection, DependencyObject value)
   at System.Windows.PresentationFrameworkCollection`1.AddDependencyObject(DependencyObject value)
   at System.Windows.Controls.UIElementCollection.AddInternal(UIElement value)
   at System.Windows.PresentationFrameworkCollection`1.Add(T value)
   at Steema.TeeChart.Silverlight.Drawing.TBlockCanvas.ShowImage()
   at Steema.TeeChart.Silverlight.TChart.Draw(Rect rect)
   at Steema.TeeChart.Silverlight.TChart.MeasureOverride(Size availableSize)
   at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Double inWidth, Double inHeight, Double& outWidth, Double& outHeight)
问题2:如果第一次绘制启用了缩放功能。锁定pivot后,我可以在屏幕上拖动图表。但每次我在tChart.series.Clear()之后加载新序列时,渲染图像会一次又一次地置换


我希望有人能帮助我。谢谢大家!

您使用的是哪个版本的TeeChart.Phone.dll

使用Steema TeeChart for.NET 2013评估4.1.2013.07304我刚刚运行了以下项目: Steema TeeChart for.NET 2013评估4.1.2013.07304\Examples\DemoProjectWindowsPhone\TeeChart for WindowsPhone.csproj

在“设置”下,可以成功地动态更改Aspect.GestureStyle。你能帮我看看这个项目吗?如果你仍然有问题,你能给我们一个小的“独立”项目,我们可以复制问题吗?您可以将您的文件发布在或发送到steema.com的信息中,参考此问题

更新:使用您的示例项目,我们可以在这里重现他的问题。不幸的是,目前这两个属性(GestureOptions和GestureStyle)的唯一解决方案是重新创建图表,也就是说,像演示一样创建TChart类的新实例。创建TChart类后,其他图表属性(添加和删除系列、添加和删除系列点、轴字体更改等)可以毫无问题地进行更改。但由于必须对TChart架构进行结构更改,这两个属性的情况有所不同


我们将进一步研究使这些改变成为可能,但我们不抱太大希望。Windows Phone框架(事实上在Windows应用商店框架中)中似乎存在一些与其他元素的子元素相关的问题,以及当父元素被销毁时框架如何认为子元素仍然属于它(元素不能有多个父元素).

在我看来,第一个错误在Teechart中,将阻止您动态修改这些手势值。您可能需要寻找其他方法来获得所需的行为。谢谢您的回答。我用的是同一个版本。演示项目实际上会在每次更改手势样式时创建一个新的图表,并且从不更新图表系列值。我创建了一个示例项目,其中的图表启用了缩放功能。在菜单选项中,可以更改缩放、图表类型和刷新值。更改缩放将启动异常。更改图表和/或刷新值似乎不会影响图表。移动图表后刷新序列会再次移动图表,但图表不会更改。我试图上传到www.steema.net/upload/,但它不起作用。我把它上传到了skydrive:@user2656182谢谢你的项目。我已经相应地更新了上面的答案。谢谢。重新创建图表可以解决更改缩放模式时的问题。但另一个问题呢?在缩放模式下,如果我对图表应用缩放或平移,然后通过添加系列或更改系列点更改图表,图表将再次应用缩放更改。在这种情况下,是否有办法重新创建图表,保持缩放设置?我真的不知道如何保存图表的缩放属性以将其重新应用于新图表。@user2656182保存左轴和下轴的最小值和最大值,然后将其重新应用于新图表如何?