2017-12-04 3 views
0

ラベル。WPF DataVisualizationのグラフ形式は、私はWPFの中に図表化し、コードでBarSeriesに作成DataVisualizationを使用していますが、私はX軸上でフォーマットされた番号を取得することはできません

チャートの種類は、ユーザーの選択に応じて変えることができ、それはかなり異なるチャートタイプを持つよりも、コードの中でこのすべてを行うことがより柔軟に見えたので、私はXAMLでこれを行うにはしたくありません。データ系列の数も変動します。

XAMLは、背後にあるコードは、のDataContextはKeyValuePairsのデータとDataSeries.Collectionある

Dim dataChart As System.Windows.Controls.DataVisualization.Charting.Chart = DataChart1 
Dim s As New System.Windows.Controls.DataVisualization.Charting.BarSeries 
s.Title = "My Chart" 
s.DependentValuePath = "Value" 
s.IndependentValuePath = "Key" 
s.DataContext = New Binding("[0]") 
s.ItemsSource = CType(itm, IEnumerable) 
dataChart.Series.Add(s) 

あるだけ

xmlns:chttk="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" 

<chttk:Chart Name="DataChart1" Margin="0" Title="{Binding AxisXTitle}" DataContext="{Binding GraphData1}" Style="{StaticResource ChartStyle1}" BorderBrush="Transparent"/> 

あります。値はすべてDouble値です。

グラフが表示されているが、軸上の値は、例えば、未フォーマットであります120000.私はいくつかのAxisの型とLabelFormatとLabelStyle.Formatを指している例をいくつか見つけましたが、コードの背後にあるWPF環境で動作するものは何も見つかりません。入力用

+0

。 – mm8

答えて

0

おかげで - 私は最終的にそれが次のコードでの作業を取得するために管理:

Dim n As Integer 
dataChart.Series.Clear() 
Dim x As New System.Windows.Controls.DataVisualization.Charting.LinearAxis 
x.Orientation = DataVisualization.Charting.AxisOrientation.X 
Dim y As New System.Windows.Controls.DataVisualization.Charting.CategoryAxis 
y.Orientation = DataVisualization.Charting.AxisOrientation.Y 
Dim stl As New Style(GetType(System.Windows.Controls.DataVisualization.Charting.AxisLabel)) 
stl.Setters.Add(New Setter(System.Windows.Controls.DataVisualization.Charting.AxisLabel.StringFormatProperty, "{0:#,0}")) 
x.AxisLabelStyle = stl 
For Each itm As Object In o 
    Dim srs As New System.Windows.Controls.DataVisualization.Charting.BarSeries 
    pi = itm.GetType.GetProperty("SeriesTitle") 
    srs.Title = pi.GetValue(itm, Nothing) 
    srs.DependentValuePath = "Value" 
    srs.IndependentValuePath = "Key" 
    srs.DataContext = New Binding("[" & n & "]") 
    srs.ItemsSource = CType(itm, IEnumerable) 
    srs.DependentRangeAxis = x 
    srs.IndependentAxis = y 
    dataChart.Series.Add(srs) 
    n += 1 
Next 

私を倒してしまった落とし穴の中には、軸を追加しました。 DependentRangeAxisまたはIndependentAxisに適切なタイプの軸を追加する必要があります。 BarSeriesにしてDependentRangeAxisは、X軸であるとLinearAxisにとIndependentAxisがY軸であり、私はれるCategoryAxisだったためにすることができます。また、複数のシリーズがある場合は、すべてのシリーズに同じ軸を適用する必要があります。

これは他の人に役立つことを願っています。あなたがプログラムAxisLabelStyleを設定する必要が

関連する問題