我有一个绑定了数据的ColumnSeries,它可以正确显示。右键单击列时,我想弄清楚独立轴(X)的值是什么。理想情况下,我想显示一个包含该信息的上下文菜单。
我有一个MouseRightButtonDown处理程序,但无法弄清楚如何执行点击测试以获取X轴信息。
我启用了选择功能,但不想在右键单击之前选择一列。
任何帮助,将不胜感激!
最佳答案
您可以在可视化树中行走以查找ColumnDataPoint
。
这是一个示例图:
<Grid MouseLeftButtonDown="Grid_MouseLeftButtonDown">
<Grid.Resources>
<PointCollection x:Key="sampleData">
<Point X="1" Y="6"/>
<Point X="2" Y="4"/>
<Point X="3" Y="8"/>
</PointCollection>
</Grid.Resources>
<chartingToolkit:Chart Title="Chart Title">
<chartingToolkit:ColumnSeries Name="chart1" Title="Column Series" ItemsSource="{StaticResource sampleData}" IndependentValueBinding="{Binding X}" DependentValueBinding="{Binding Y}"/>
</chartingToolkit:Chart>
</Grid>
并带有以下代码:
private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
var element = Mouse.DirectlyOver as DependencyObject;
while (element != null && !(element is ColumnDataPoint))
{
element = VisualTreeHelper.GetParent(element);
}
if (element != null)
{
var columnDataPoint = element as ColumnDataPoint;
Debug.WriteLine("X = " + columnDataPoint.IndependentValue);
Debug.WriteLine("Y = " + columnDataPoint.DependentValue);
}
}
单击鼠标左键时,将鼠标悬停的项目的X和Y值打印出来。
关于c# - C#WPF ChartingToolKit:如何从MouseRightButtonDown中的ColumnSeries获取独立轴值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4672444/