0

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 は 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() の後に新しいシリーズをロードするたびに、レンダリングされた画像が何度も移動します...

誰かが私を助けてくれることを願っています。ありがとうございました!

4

1 に答える 1

0

どのバージョンの TeeChart.Phone.dll を使用していますか?

.NET 2013 Evaluation 4.1.2013.07304 に Steema TeeChart を使用する 次のプロジェクトを実行しました。

「設定」の下で、Aspect.GestureStyle を動的に正常に変更できます。支援のためにこのプロジェクトを見てもらえますか? それでも問題が解決しない場合は、問題を再現できる小さな「スタンドアロン」プロジェクトを送っていただけますか? ファイルをwww.steema.net/upload/に投稿するか、この質問を参照して steema dot com の info に送信してください。

更新:サンプル プロジェクトを使用して、ここで彼の問題を再現することができました。残念ながら、これら 2 つのプロパティ (GestureOptions と GestureStyle) の現時点での唯一の解決策は、グラフを再作成することです。つまり、デモのように TChart クラスの新しいインスタンスを作成することです。その他のチャート プロパティ、シリーズの追加と削除、シリーズ ポイントの追加と削除、軸フォントの変更などは、TChart クラスの作成後に問題なく変更できます。しかし、TChart アーキテクチャに構造的な変更を加える必要があるため、これら 2 つのプロパティの状況は異なります。

そのような変更を可能にすることをさらに検討しますが、多くの希望を差し伸べることはできません. Windows Phone フレームワーク (および実際には Windows ストア フレームワーク) には、他の要素の子である要素に関連するいくつかの問題があるようです。また、親要素が破棄されたときに、子要素がまだ属しているとフレームワークがどのように判断するかについても問題があります。それ (要素は複数の親を持つことはできません)。

于 2013-08-07T09:18:21.537 に答える