【wpf,C#】wpf调用winform的chart空间,把数据显示成表格曲线

2023-10-26

背景:用wpf想把数据在显示在图表,以一条曲线展示的时候,发现出了问题,wpf不像winform,直接就有chart控件,所以就花了点精力,学会了怎么调用chart控件,最终是为了把数据能够以图表曲线的形式展示出来。
当然,wpf还有其他显示更美观曲线图的方法,现在还没接触到。慢慢来吧,有好的方法可以告诉我一声哦

1. 添加引用

首先在你的项目引用里添加几个新的dll文件:

System.Windows.Forms.dll
WindowsFormsIntegration.dll
System.Windows.Forms.DataVisualization.dll

如图
在这里插入图片描述
在这里插入图片描述

2. xaml文件修改

在xaml文件片首添加以下代码:

  xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
    xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
   xmlns:Chr="clr-namespace:System.Windows.Forms.DataVisualization.Charting;assembly=System.Windows.Forms.DataVisualization"
        

并在文件中间添加以下代码:


   <WindowsFormsHost x:Name="WFHost_HistoryFlow" Margin="402,0,1.333,0.667" Height="239" VerticalAlignment="Bottom">
            <Chr:Chart x:Name="chart"/>
        </WindowsFormsHost>

该代码解释;由于wpf没有chart控件,所以以上代码就是给一个chart图表,大小都是自己设置。这里我把这个图表命名为 chart。
总体代码如图所示:
在这里插入图片描述

2. xaml.cs 文件修改

xaml.cs文件改成

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
using System.Data;

namespace UsingChart
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
       
            float[] X = new float[10];
            float[] Y = new float[10];
            for (int i = 0; i < 10; i++) {
                X[i] = i;
                Y[i] = i * i;
            }
            ChartArea ca0 = new ChartArea("ChartArea0");
            this.chart.ChartAreas.Add(ca0);
            //ChartArea ca1 = new ChartArea("ChartArea1");
            //this.chart.ChartAreas.Add(ca1);
            this.chart.ChartAreas[0].CursorX.IsUserEnabled = true;
            this.chart.ChartAreas[0].CursorX.AutoScroll = true;
            this.chart.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
            this.chart.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
            this.chart.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;
            this.chart.ChartAreas[0].AxisX.ScrollBar.Size = 10;
            this.chart.ChartAreas[0].AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.All;
            this.chart.ChartAreas[0].AxisX.ScaleView.SmallScrollSize = double.NaN;
            this.chart.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSize = 1;

            this.chart.Series.Add("Series0");
            this.chart.Series[0].Points.DataBindXY(X, Y);
            this.chart.Series[0].ChartType = (SeriesChartType)3;
        }
    }
}

代码解释: 我这里自己写了一个函数 y=x^2, 其中x从0到9,所以运行后会在界面上显示这条曲线,如图所示
在这里插入图片描述
如果用你自己的数据,把数据改改,换个方式就可以啦,第二段代码也比较容易看懂,看不懂的可以跟我交流,或者有更好的方法的同伴。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【wpf,C#】wpf调用winform的chart空间,把数据显示成表格曲线 的相关文章

随机推荐

  • Unity3D游戏编程——离散仿真作业

    Unity3D游戏编程 离散仿真作业 1 简答题asd 1 1解释游戏对象 GameObjects 和资源 Assets 的区别与联系 答 游戏对象 GameObjects 是一系列资源的组成序列 资源 Assets 是一系列可以被Unit
  • python tkinter.Text 高级用法 -- 设计功能齐全的文本编辑器

    众所周知 tkinter的Text文本框功能强大 Python自带的IDLE编辑器也是用tkinter编写的 这里作者也用tkinter的Text文本框等控件 设计功能较齐全的文本编辑器程序 目标功能 编辑文本文件 编辑二进制文件 字符会以
  • YOLO内卷时期该如何选模型?

    关注公众号 发现CV技术之美 本篇文章来自知乎 作者 迪迦奥特曼 原地址 https zhuanlan zhihu com p 566469003 前两天看到了美团微信公众号上的宣传 更新发布了新版YOLOv6 还放出了arxiv论文 更新
  • MySQL主从复制,数据库最经典的主从复制你还不知道吗?我不允许!!!

    作者 小刘在C站 个人主页 小刘主页 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 学习两年总结出的运维经验 以及思科模拟器全套网络实验教程 专栏 云计算技术 小刘私信可以随便问 只要会绝不吝啬 感谢CSDN让你我相遇 目录
  • vue+高德地图实现多边形范围内标点

    vue 高德地图实现多边形范围内标点 具体实现 一 安装并引入高德地图 二 创建一个aMap地图文件 三 aMap上创建多边形围栏 四 配置围栏 地图点击事件 五 地图点击标点事件 本篇文章可用于vue项目使用百度地图 获取指定多边形范围内
  • Python 使用VSCode配置代码智能提示的方法(numpy)

    本文主要介绍Python中 使用VSCode作用开发工具时 使用代码智能提示的配置方法 以及使用Numpy时 创建的变量或对象没有提示问题的解决方法 原文地址 Python 使用VSCode配置代码智能提示的方法 numpy
  • STM32CUBEMX_SDIO和FATFS_读写SD卡

    STM32CUBEMX SDIO和FATFS 读写SD卡 简述 FATFS是一个完全免费开源 专为小型嵌入式系统设计的FAT File Allocation Table 文件系统模块 FATFS的编写遵循ANSI C 并且完全与磁盘I O层
  • C++入门--类和对象(上)

    目录 一 C 的类 1 类的引入 2 类的定义 3 类的访问限定符及封装 4 封装 5 类的作用域 6 类的实例化 7 类对象的大小 二 this指针 1 this指针引入 2 this指针的特性 三 C语言和C 实现Stack的对比 1
  • 微信小程序 background-image直接设置本地图片路径,编辑器正常显示,真机运行不显示解决方法

    项目场景 微信小程序 设置background image直接设置本地图片路径 问题描述 编辑器正常显示 真机运行不显示 原因分析 background image只能用网络url或者base64图片编码 解决方案 1 将本地图片转为网络u
  • 用Rsync,实现网站的增量部署

    整个网站通常会很大 尤其的其中静态的图片视频之类 但我们通常不会修改他们 平常只会修改几个文件 如果每次更新都将整个网站从本地上传到服务器 无疑很费时间 如果要找到修改的文件 并只上传这些文件 甚至只上传这些文件修改的部分 无疑会方便很多
  • img.shape img.size

    import cv2 import numpy as np img cv2 imread messi5 jpg print img shape px img 100 100 print px blue img 100 100 0 print
  • WARNING: You are using pip version 19.2.3, however version 20.1.1 is available. -解决方法

    当用PIP下载模块时提示 WARNING You are using pip version 19 2 3 however version 20 1 1 is available You should consider upgrading
  • 寒假日报(2.3-2.5)

    1 终于学完了慕课中的 python3入门机器学习 简单总结回顾一下我学习到的东西 具体的学习笔记以后有时间就补上 Jupyter Notebook的使用 numpy基础 matpotlib绘图 KNN k近邻算法 分类 非监督学习 线性回
  • 实现基于TensorFlow的手写数字识别(1)

    一 MNIST数字识别数据集获取及处理 通过学习林大贵老师的 TensorFlow Keras深度学习人工智能实践应用 对图像处理的过程有了较浅薄的理解 在此与大家分享 同时由于上书中提供的代码下载页面失效 笔者按照书本中的内容手敲代码 如
  • 解决cv2.error: OpenCV(3.4.4) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:356: erro

    Opencv python中调用cv2 imshow 时出现该错误 解决 图片路径有误 将第一幅图片中路径改为 Image ying3 jpg即可
  • jvm之String

    基本特性 字符串 使用一对 引起来表示 声明为final的 不可被继承 实现了Serializable接口 表示字符串是支持序列化的 实现了Comparable接口 表示String 可以比较大小 在jdk8及以前内部定义了final ch
  • 【封装】封装DML和DQL方法

    封装DML和DQL方法 一 工具类型的封装及普适性泛型工具 1 1 封装DML方法 1 2 封装DQL方法 二 用户案例 一 工具类型的封装及普适性泛型工具 1 1 封装DML方法 public int commonsUpdate Stri
  • H5活动页面遇到的坑+微信分享代码

    h5活动页面功能 在手机上微信分享 1 上传两张图片 2 播放一个背景音乐 很简单是么 那说明你知道的太少了 其实里面的坑好多 一下是制作的心路历程 坑1 iphone上传照片的时候 因为有oriten的原因 所以传上去旋转了 坑2 安卓a
  • Linux rpm命令查询软件包(-q、-qa、-i、-p、-l、-f、-R)

    使用 rpm 做查询命令的格式如下 root localhost rpm 选项 查询对象 rpm q 查询软件包是否安装 用 rpm 查询软件包是否安装的命令格式为 root localhost rpm q 包名 q 表示查询 是 quer
  • 【wpf,C#】wpf调用winform的chart空间,把数据显示成表格曲线

    背景 用wpf想把数据在显示在图表 以一条曲线展示的时候 发现出了问题 wpf不像winform 直接就有chart控件 所以就花了点精力 学会了怎么调用chart控件 最终是为了把数据能够以图表曲线的形式展示出来 当然 wpf还有其他显示