我有一个绑定了数据的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/

10-12 12:37