WPF报表控件(折线图、柱状图、饼状图)

这篇内容列举了支持WPF平台的图表控件,包括免费和付费选项。免费工具如DynamicDataDisplay提供开放源代码的数据可视化,但更新停止于2009年;WPF Toolkit则需要自行实现平移和缩放功能。付费工具如Visiblox Charts、SciChart、Infragistics xamDataChart、Telerik RadChart和Visifire提供了2D图表、平移缩放等功能,其中Visiblox作者对其有深入开发经验。
摘要由CSDN通过智能技术生成

Free tools supporting panning / zooming:

  • DynamicDataDisplay - a nice, open source data visualization library. Unfortunately it's not been updated since April 30, 2009.

Free tools without built in pan / zoom support:

之前三此发的库http://download.csdn.net/detail/maiker/9621027可以作废,本次为最新的,其中测试了历史曲线的动态显示,这是对Microsoft WpfToolkit的更新和扩展: 1、将库版本升级到.NET 4.6.1,对命名控件进行了替换处理 2、实现了单数据Chart图的混合颜色显示,可通过修改资源字典调整和添加颜色 3、可控制各种Chart图形的数据值显示 4、坐标轴文本可倾斜显示 5、添加了StepLine图和圆环图,圆环半径比例系数可设定,同时添加了饼图的半径比系数,这样可以更好的控制饼图的标签显示,避免重叠 6、Legend可位于区域四侧,对齐方式也可以设定,以及是否显示, 可控制Chart Title是否显示 7、柱状图缝隙间隔可调整 8、全方面的加入了各种加载动画效果,动画效果可屏蔽,同时原系统自带动画效果,可叠加,这是两种不同的效果,可以互补性的单个使用 9、设计了四种主题颜色,各人可以针对图形颜色和背景色进行更好的搭配,在用户项目中,可以自己添加新的主题。 10、扩展了时间轴的应用,在新的DateTimeChart中可以通过鼠标平移和缩放时间轴,并测试了两个例子用于动态显示历史曲线,一个是外部定时更新,一个是内部定时更新 11、对LineDataPoint样式进行了设计,现在可以选择线图的点样式(如空心圆、五角星、三角形,矩形等),同时这些不同的点样式可以体现在Legend上,从而实现颜色和图形的双重区分。 总而言之,微软的控件库做得很标准,还是很好修改的。 最后一直想在历史曲线中取消点动画(及默认的透明度动画),以便提高执行效率,但微软的那部分动画不熟,总是修改失败。 可以发邮件wuyang26@live.cn讨论。
WPF (Windows Presentation Foundation) 中,你可以使用内置的`System.Windows.Controls.DataVisualization.Charting`命名空间来创建各种图表,如柱状图折线图和饼图。以下是一个简化的示例,展示如何创建一个包含柱状图折线图和饼图的窗口: 首先,你需要添加对`System.Windows.DataVisualization.Charting`的引用。在XAML文件中,你会看到这样的引用: ```xml xmlns:charting="http://schemas.microsoft.com/winfx/2006/xaml/presentation/charting" ``` 接下来,创建一个用户控件(UserControl)并添加三个图表: ```xaml <UserControl x:Class="MyApp.ChartExample" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Grid> <StackPanel Orientation="Horizontal"> <!-- 柱状图 --> <charting:Chart Height="200" Width="300"> <charting:ColumnSeries Title="柱状图数据" ItemsSource="{Binding ColumnData}"/> </charting:Chart> <!-- 折线图 --> <charting:LineChart Height="200" Width="300"> <charting:LineSeries Title="折线图数据" ItemsSource="{Binding LineData}"/> </charting:LineChart> <!-- 饼图 --> <charting:PieChart Height="200" Width="300"> <charting:PieSeries Title="饼图数据" ItemsSource="{Binding PieData}"/> </charting:PieChart> </StackPanel> </Grid> </UserControl> ``` 然后,在你的ViewModel(例如`ChartViewModel`)中,你需要提供数据模型: ```csharp public class ChartViewModel : INotifyPropertyChanged { private List<DataPoint> columnData; private List<DataPoint> lineData; private List<DataPoint> pieData; public List<DataPoint> ColumnData => columnData; public List<DataPoint> LineData => lineData; public List<DataPoint> PieData => pieData; // 数据点对象需要自定义 // ...其他属性和通知更改事件处理 } ``` 最后,记得在窗体或视图中绑定ViewModel的数据到对应的图表。 注意,这只是一个基础示例,实际应用可能需要更复杂的配置,比如设置轴标签、数据系列颜色等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值