WPF用户控件中ScottPlot图表与后台代码绑定方法咨询
解决WPF中ScottPlot WpfPlot控件与后台代码的关联问题
你的问题在于没有将后台图表逻辑与XAML中的chartWpf控件绑定,而是新建了独立的Plot对象,且错误用保存图片的方法来实现控件显示。正确做法是直接操作WpfPlot控件自带的Plot属性,步骤如下:
修改后台代码
直接使用XAML控件的Plot属性构建图表,最后刷新控件即可:
public UReport() { InitializeComponent(); // 直接操作chartWpf自带的Plot实例,无需新建Plot对象 var plt = chartWpf.Plot; double[] values = { 26, 20, 23, 7, 16 }; double[] positions = { 0, 1, 2, 3, 4 }; string[] labels = { "PHP", "JS", "C++", "GO", "VB" }; plt.AddBar(values, positions); plt.XTicks(positions, labels); plt.SetAxisLimits(yMin: 0); // 刷新控件,让图表显示出来 chartWpf.Refresh(); }
关键说明
WpfPlot控件内部已封装Plot实例,通过chartWpf.Plot直接访问即可,无需手动创建新的Plot对象。plt.SaveFig()是将图表保存为本地图片的方法,不是WPF控件显示逻辑,需移除。- 完成图表配置后,必须调用
chartWpf.Refresh()才能让控件更新显示内容。
XAML注意事项
确保XAML根元素已正确引入ScottPlot命名空间:
xmlns:ScottPlot="clr-namespace:ScottPlot;assembly=ScottPlot.WPF"
内容的提问来源于stack exchange,提问作者Saba Zahedieh
相关产品推荐
相关产品推荐

