2016-05-21 20 views

答えて

1

LegendBoxクラスにはSeriesTitle *イベントがあります。そして、いずれのシリーズタイトルをクリックして、すべてのシリーズが強調表示されます

void LegendBox_SeriesTitleMouseClick(object sender, System.Windows.RoutedEventArgs e) 
    { 
     m_chart.BeginUpdate(); 

     foreach (PointLineSeries s in m_chart.ViewXY.PointLineSeries) 
     { 
      s.SetHighlight(); 

      //s.RemoveHighlight(); //To remove highlight, use this 
     } 
     m_chart.EndUpdate(); 
    } 

m_chart.BeginUpdate(); 


ViewXY viewXY = m_chart.ViewXY; 
viewXY.XAxes[0].ValueType = AxisValueType.Number; 

int seriesCount = 10; 

//Create series that will highlight the other series 

for (int i = 0; i < seriesCount; i++) 
{ 
    PointLineSeries s = new PointLineSeries(viewXY, viewXY.XAxes[0], viewXY.YAxes[0]); 
    s.LineStyle.Color = DefaultColors.SeriesForBlackBackgroundWpf[i]; 
    s.Points = GenerateSomeRandomData((i+1) * 20); 
    s.Title.Text = "Series " + i.ToString(); 
    viewXY.PointLineSeries.Add(s); 
} 
viewXY.LegendBox.MoveFromSeriesTitle = false; 
viewXY.LegendBox.SeriesTitleMouseClick += LegendBox_SeriesTitleMouseClick; 
viewXY.LegendBox.Layout = LegendBoxLayout.Vertical; 

m_chart.EndUpdate(); 

と、次のようにイベントハンドラを定義する:あなたはかなりこのようにそれを利用することができます。 series.MouseHighlightプロパティの設定に基づいて、明るい太い線、明るい色から暗い色へのアニメーション、または元の色を維持します。

All the series get highlighted when you move mouse over any series title in the Legend box

うまくいけば、これは:-)

+0

賞賛の男に役立ちます!それは動作します。しかし、私は伝説の中でこれらのシリーズのいくつかを見せて残りを隠したいのですが、それをどうやって行うのですか? –

+0

これは、凡例ボックスに表示したくないすべてのシリーズに対してseries.ShowInLegendBox = falseを設定することで行うことができます。 –

+0

ありがとう非常に有用な答え。 –

関連する問題