WPF中如何设置SfChart图表Tooltip的数字千分位分隔符格式
为WPF SfChart的SplineSeries Tooltip设置千分位格式
我使用C# WPF及Syncfusion组件操作SfChart控件,已为图表主轴、次轴、图例设置千分位格式(#,#),且启用了SplineSeries的Tooltip,但需要为该Tooltip设置数字千分位分隔符格式。原XAML代码如下:
<syncfusion:SfChart Visibility="Visible" Margin="5"> <syncfusion:SfChart.Behaviors> <syncfusion:ChartZoomPanBehavior EnableMouseWheelZooming="True" EnablePinchZooming="True" EnableZoomingToolBar="True" EnablePanning="True" ZoomRelativeToCursor="True" > </syncfusion:ChartZoomPanBehavior> </syncfusion:SfChart.Behaviors> <syncfusion:SfChart.PrimaryAxis> <syncfusion:CategoryAxis LabelFormat="#,#"/> </syncfusion:SfChart.PrimaryAxis> <syncfusion:SfChart.SecondaryAxis> <syncfusion:NumericalAxis Header="مبلغ" LabelFormat="#,#" /> </syncfusion:SfChart.SecondaryAxis> <chart:SfChart.Legend> <chart:ChartLegend DockPosition="Top" ItemStringFormat="#,#"/> </chart:SfChart.Legend> <syncfusion:SplineSeries ItemsSource="{Binding PISH_90_DATA}" Label="پیش فاکتور های 90 روزه" EnableAnimation="True" XBindingPath="DD" YBindingPath="MABL_K" ShowTooltip="True"> <syncfusion:SplineSeries.AdornmentsInfo> <chart:ChartAdornmentInfo ShowLabel="False" SegmentLabelFormat="#,#"> </chart:ChartAdornmentInfo> </syncfusion:SplineSeries.AdornmentsInfo> </syncfusion:SplineSeries> </syncfusion:SfChart>
解决方案
方法1:全局统一设置Tooltip格式
在SfChart的Behaviors集合中添加ChartTooltipBehavior,指定其LabelFormat为千分位格式#,#,所有Series的Tooltip都会自动应用该格式:
<syncfusion:SfChart.Behaviors> <syncfusion:ChartZoomPanBehavior EnableMouseWheelZooming="True" EnablePinchZooming="True" EnableZoomingToolBar="True" EnablePanning="True" ZoomRelativeToCursor="True" /> <!-- 添加Tooltip行为并设置千分位格式 --> <syncfusion:ChartTooltipBehavior LabelFormat="#,#" /> </syncfusion:SfChart.Behaviors>
方法2:单个Series自定义Tooltip模板
如果需要针对当前SplineSeries定制Tooltip布局或格式,可以设置Series的TooltipTemplate,在模板中对绑定的数值应用千分位格式:
<syncfusion:SplineSeries ItemsSource="{Binding PISH_90_DATA}" Label="پیش فاکتور های 90 روزه" EnableAnimation="True" XBindingPath="DD" YBindingPath="MABL_K" ShowTooltip="True"> <syncfusion:SplineSeries.AdornmentsInfo> <chart:ChartAdornmentInfo ShowLabel="False" SegmentLabelFormat="#,#"> </chart:ChartAdornmentInfo> </syncfusion:SplineSeries.AdornmentsInfo> <!-- 自定义Tooltip模板,对Y值应用千分位格式 --> <syncfusion:SplineSeries.TooltipTemplate> <DataTemplate> <StackPanel> <TextBlock Text="{Binding Item.DD}" /> <TextBlock Text="{Binding Item.MABL_K, StringFormat='#,#', Mode=OneWay}" /> </StackPanel> </DataTemplate> </syncfusion:SplineSeries.TooltipTemplate> </syncfusion:SplineSeries>
说明
- 方法1操作简单,适合全局统一配置所有Tooltip的格式;
- 方法2灵活性更高,可自定义Tooltip的布局样式,也能针对单个Series设置差异化格式。
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

