2013-08-06 49 views
0

和滾動在了Windows Phone 8的項目我創建一個TChart一個用戶控件裏面是這樣的:的TeeChart變焦在Windows Phone 8

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(); 

的用戶控件是一個PivotItem裏面。這個想法是在縮放模式下鎖定數據透視表,以允許圖表響應拖動&捏手勢。

問題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:如果第一個平局是啓用變焦。鎖定樞軸後似乎都有效,我可以在屏幕上拖動圖表。但每次我加載新的系列後tChart.Series.Clear()渲染的圖像一次又一次地取代...

我希望有人能幫助我。謝謝!

+0

在我看來,第一個錯誤是在Teechart內部,並且會阻止您動態修改這些手勢值。您可能需要研究其他方法以獲得理想的行爲。 – steveg89

回答

0

您正在使用哪個版本的TeeChart.Phone.dll?

使用Steema的TeeChart爲.NET 2013評估4.1.2013.07304我剛剛運行以下項目: Steema的TeeChart爲.NET 2013評價4.1.2013.07304 \例子\ DemoProjectWindowsPhone \ TeeChartForWindowsPhone.csproj

這下「設置「允許人們成功地動態改變Aspect.GestureStyle。你可以看看這個項目的幫助嗎?如果你仍然有問題,請你給我們一個小的「獨立」項目,我們可以重現這個問題?您可以在www.steema.net/upload/上發佈您的文件,或者將它們發送到steema dot com參考此問題的信息。

更新:使用您的示例項目,我們已經能夠在這裏重現他的問題。不幸的是,這兩個屬性(GestureOptions & GestureStyle)目前唯一的解決方案是重新創建圖表,即創建一個TChart類的新實例,就像演示一樣。在創建TChart類後,可以更改其他圖表屬性,添加和刪除系列,添加和刪除系列點,軸字體更改以及您擁有的內容等。但由於他們必須對TChart架構進行結構更改,這兩種屬性的情況有所不同。

我們會進一步研究可能的更改,但我們並不抱有太多希望。在Windows Phone框架(實際上在Windows Store框架中)似乎存在一些與其他元素的子元素有關的問題,以及在父元素被銷燬時框架認爲子元素仍然屬於它(元素不能有多個父代)。

+0

謝謝你的回答。我使用的是相同的版本。演示項目實際上會在您每次更改手勢樣式時創建一個新圖表,並且從不更新圖表系列值。 – mmendeza

+0

我使用啓用縮放的圖表創建了一個示例項目。在菜單選項中,可以更改縮放比例,圖表類型和刷新值。更改縮放將啓動異常。更改圖表和/或刷新值似乎不會影響圖表。移動圖表後,刷新系列會再次移動圖表,但圖表不會更改。 我嘗試上傳到www.steema.net/upload/,但它不起作用。我上傳到skydrive代替: [示例項目](http:// sdrv。ms/1cMdJkg) – mmendeza

+0

@ user2656182感謝您的項目。我相應地更新了我的答案。 –