1

IAxis 型の XAxis プロパティを持つグラフ作成ツールをサブクラス化しようとしています (そのため、NumericAxis、DateAxis などを指定できます)。通常ベース チャートを使用する場合、XAxis を次のように設定できます。

<chart:BaseChart>
   <chart:BaseChart.XAxis>
      <chart:NumericAxis VisibleRange="{Binding XAxisVisibleRange}" AxisAlignment="Bottom"/>
   </chart:BaseChart.XAxis>
</chart:BaseChart>

ただし、カスタム コントロールでこの既定の軸を設定するためのベスト プラクティスが何であるかはよくわかりません。サブクラスのコンストラクターで XAxis プロパティ/バインディングを設定することにより、コード ビハインドから動作させることができます。これは機能しますが、それが「正しい」方法であるかどうかはわかりません。

WPF は初めてなので、XAML でカスタム コントロールをどこでどのように行うべきかわかりません。コントロール テンプレート、スタイル、または別の場所に配置する必要がありますか? スタイルでセッターを実行しようとしましたが、機能しませんでした (コンパイルされましたが、軸が表示されませんでした)。コントロール テンプレートから、それは認識しません<chart:BaseChart.XAxis>。上下左右に定義された AxisAreas があり<chart:NumericAxis etc/>、それらの内側に単純に配置すると、軸がそこに表示されますが、実際には BaseChart の XAxis プロパティを設定していないため、正しく感じられません。 NumericAxis オブジェクトの AxisAlignment プロパティをバイパスし、軸コードを入れた AxisArea に軸を明示的に配置します。

私が言ったように、私はコード ビハインドからこれを機能させています。できる限り最善の方法で実行していることを確認したいだけです。どんな助けでも大歓迎です、事前に感謝します!

4

1 に答える 1

0

あなたの質問に対する完全な回答については、MSDNのControl Authoring Overviewページを参照してください。

ただし、要するに、 のCustomControl場合、アプリケーションのルート ディレクトリに という名前のフォルダを作成する必要がありますThemes。という名前の XAML ファイルGeneric.xamlをこのフォルダーに追加し、そこにControlTemplateforを配置する必要CustomControlがあります。

の場合、をページのセクションにUserControl追加するだけです。StyleUserControl.Resources

于 2013-09-06T14:41:39.887 に答える