Syncfusion Windows Phone 8图表

时间:2014-03-10 12:17:12

标签: c# windows-phone-8 syncfusion

我有一个饼图,我想在检查一片Pie时爆炸并做其他事情 所以我的问题是如何检索在代码中选择的索引

这是我的XAML         

        <chart:SfChart.PrimaryAxis>
            <chart:CategoryAxis></chart:CategoryAxis>
        </chart:SfChart.PrimaryAxis>
        <chart:SfChart.SecondaryAxis>
            <chart:NumericalAxis></chart:NumericalAxis>
        </chart:SfChart.SecondaryAxis>

        <chart:PieSeries  PieCoefficient="0.6" MouseLeftButtonDown="pieSeries_MouseLeftButtonDown" ExplodeRadius="20"  EnableAnimation="True" x:Name="pieSeries" ShowTooltip="True" chart:ChartTooltip.EnableAnimation="True" ItemsSource="{Binding Expenditure}" XBindingPath="Expense" Label="" LabelPosition="Outside" YBindingPath="Amount"  Palette="Custom">
            <chart:PieSeries.ColorModel>

                <chart:ChartColorModel>

                    <chart:ChartColorModel.CustomBrushes>

                        <SolidColorBrush Color="Green"/>

                        <SolidColorBrush Color="Black"/>

                        <SolidColorBrush Color="Red"/>

                        <SolidColorBrush Color="#FFD541"/>

                        <SolidColorBrush Color="Plum"/>

                        <SolidColorBrush Color="Purple"/>

                    </chart:ChartColorModel.CustomBrushes>

                </chart:ChartColorModel>

            </chart:PieSeries.ColorModel>
            <chart:PieSeries.AdornmentsInfo>
                <chart:ChartAdornmentInfo AdornmentsPosition="Bottom"  HorizontalAlignment="Center" VerticalAlignment="Center" 
                                              ConnectorLineStyle="{StaticResource lineStyle}" ShowConnectorLine="True" 
                                              ConnectorHeight="30" ShowLabel="True"  LabelTemplate="{StaticResource labelTemplate}" 
                                              SegmentLabelContent="YValue">
                </chart:ChartAdornmentInfo>
            </chart:PieSeries.AdornmentsInfo>

        </chart:PieSeries>
    </chart:SfChart>
 In the c# code I want The MouseLeftButtonDown Event to trigger the slice of the pie to explode 

 private void pieSeries_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {

}

1 个答案:

答案 0 :(得分:0)

Syncfusion提供了SelectionBehavior,而不是尝试使用鼠标事件,这有助于选择系列中的片段。此外,还可以通过创建继承Pie Series的自定义系列来访问这些内部细分,如下面的代码段所示。

public class CustomPieSeries : PieSeries
{
    public ObservableCollection<ChartSegment> PieSegments { get; set; }
    public override void CreateSegments()
    {
        base.CreateSegments();
        PieSegments = Segments;
    }
}

<local:CustomPieSeries SegmentSelectionBrush="Cornsilk" ItemsSource="{Binding Expenditure}" XBindingPath="Expense" YBindingPath="Amount"   EnableAnimation="True" PieCoefficient="0.6"  ExplodeRadius="20"   x:Name="pieSeries" ShowTooltip="True" chart:ChartTooltip.EnableAnimation="True"  Label="" LabelPosition="Outside"   Palette="Custom">
            <local:CustomPieSeries.ColorModel>

                <chart:ChartColorModel>

。 。 。 然后为Chart添加SelectionChanged事件以获取所选段的索引,如下所示。

private void SfChart_SelectionChanged_1(object sender, Syncfusion.UI.Xaml.Charts.ChartSelectionChangedEventArgs e)
    {
        int selectedSegmentIndex = (chart.Series[0] as CustomPieSeries).PieSegments.IndexOf(e.SelectedSegment);
    }