2

これは楽しい工学レベルの質問だと思います。

折れ線グラフを表示するコントロールを設計する必要があります。私ができるようにしたいのは、デザイナーを使用して、Pens実際にデータとプレゼンテーションを記述する複数を追加して、これらの行に沿って Xaml の何かになるようにすることです。

<Chart>
  <Pen Name="SalesData" Color="Green" Data="..."/>
  <Pen Name="CostData" Color="Red" Data="..." />
  ...
</chart>

ItemsControl私の最初の考えは、Chartクラスを延長することです。それは私が行きたいところに私を連れて行きますか、それとも延長などの別の方向から見るべきPanelですか?

主な要件は、C# コードを追加せずにデザイナーで使用できることです。それを実行可能にするためには、ツリー ビュー モデルでその構造を保持する必要があります。つまり、Expression Blend または Mobiform Aurora でこれを操作していれば、論理ツリーからグラフを選択したり、個々のペンを選択してプロパティを編集したりできます。

4

3 に答える 3

2

私は Chart を ItemsControl として使用し、その ItemsPanel を Canvas にします (軽い用途では、Grid を ItemsPanel として使用します)。各ペンは、PolyLine クラスから派生した CustomControl になります。それは意味がありますか?

于 2008-09-15T15:34:23.933 に答える
1

(元の質問で述べたように) 個人開発の観点から独自のコントロールを作成することに関心がある場合は、この形式の構造をお勧めします。

<Chart>
  <Chart.Pens>
    <Pen Name="SalesData" Data="{Binding Name=SalesData}" />        
    <Pen Name="CostData">
      <Pen.Data>
        <PenData Y="12" X="Jan" />
        <PenData Y="34" X="Feb" />
      </Pen.Data>
    </Pen>
  </Chart.Pens>
</Chart>

そのためには、ユーザー コントロールで Pens コレクションを公開する必要があります (派生した ItemsControl コントロールとは見なしません)。この派生ユーザー コントロールは、他のコントロールをカプセル化します。通常は、見出しのラベルを配置するグリッド、軸名のラベル、場合によっては描画領域の Canvas、および項目を Legend に表示する ItemsControl です。


すぐに使えるソリューションをお探しの方へ

すぐに使えるソリューションを探している人は、VisiFire のWPF チャート コントロールの CodePlex をチェックしてみてください。WPF と Silverlight の互換性があり、データとスタイルを入力してアプリケーションに貼り付ける XAML (または HTML) を生成するためのSilverlight アプリもあります。

于 2008-12-02T15:48:31.010 に答える
0

もう 1 つのオプションは、グラフの Canvas を拡張し、Pen の Shape を拡張することです。次に、Color/Data プロパティに基づいて形状を動的に描画します。

于 2008-09-09T14:22:30.787 に答える