欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#?Chart?簡單使用教程

 更新時間:2022年11月18日 14:40:01   作者:double64  
Chart控件可以用來繪制波形圖、柱狀圖、餅圖、折線圖等,用來進行數(shù)據(jù)表現(xiàn)是很不錯的,現(xiàn)在簡單說一下這個控件的使用方法,對C#?Chart使用相關知識感興趣的朋友一起看看吧

Chart控件可以用來繪制波形圖、柱狀圖、餅圖、折線圖等,用來進行數(shù)據(jù)表現(xiàn)是很不錯的,現(xiàn)在簡單說一下這個控件的使用方法

XAML:

<Window x:Class="WpfApp2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp2"
        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"
        mc:Ignorable="d"   WindowStartupLocation="CenterScreen"
        Title="MainWindow" Height="400" Width="600">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition Height="100" />
        </Grid.RowDefinitions>
        <WindowsFormsHost x:Name="WFHost_HistoryFlow" Margin="1" Background="Azure">
            <Chr:Chart x:Name="chartTest"  BackColor="WhiteSmoke"/>
        </WindowsFormsHost>
        
        <Border Grid.Row="1" Background="LightBlue"/>
        <StackPanel Margin="0" Grid.Row="1" HorizontalAlignment="Center" Orientation="Horizontal" >
            <Button x:Name="btn_Start" Click="btn_Start_Click" Content="開始" Height=" 30" Width="100"/>
            <Button x:Name="btn_Stop" Click="btn_Stop_Click" Content="停止" Height=" 30" Width="100" Margin="10 0 0 0"/>
            <Button x:Name="btn_ChangeEnable" Click="btn_ChangeEnable_Click" Content="切換顯示隱藏狀態(tài)" Height="30" Width="100" Margin="10 0 0 0"/>
        </StackPanel>

    </Grid>
</Window>

C# behind code:

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;


// https://www.cnblogs.com/stackmiao/p/11463284.html // 參考

namespace WpfApp2
{
    /// <summary>
    /// MainWindow.xaml 的交互邏輯
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            Constructor();
            SetChartArea();
            SetSeries();
            SetTitle();
            SetLegend();
            SetStripLine();
        }

        private ChartArea m_ChartArea;
        private Series m_Series;
        private Series m_Series_2;
        private Legend m_Legend;
        private Title m_Title;

        private Random m_Random = new Random((int)DateTime.Now.Ticks);
        private Timer m_Timer = new Timer()
        {
            Interval = 500,
            Enabled = false
        };

        private void Constructor()
        {
            // Chart 控件可以包含多個 ChartArea
            // ChartArea 里可以含多條 Series

            m_ChartArea = new ChartArea();
            m_Series = new Series("曲線1");
            m_Series_2 = new Series("曲線2");
            m_Legend = new Legend("No.1");
            m_Title = new System.Windows.Forms.DataVisualization.Charting.Title(
                "保壓值", System.Windows.Forms.DataVisualization.Charting.Docking.Top,
                new System.Drawing.Font("宋體", 16F), System.Drawing.Color.Black);
            chartTest.ChartAreas.Add(m_ChartArea);
            chartTest.Series.Add(m_Series);
            chartTest.Legends.Add(m_Legend);
            chartTest.Titles.Add(m_Title);

            m_Timer.Tick += M_Timer_Tick;
            m_Timer.Tick += M_Timer_Tick_2;
        }

        private void M_Timer_Tick(object sender, EventArgs e)
        {
            int yVal = m_Random.Next(32, 70);

            if (m_Series.Points.Count < 20)
            {
                m_Series.Points[m_Series.Points.Count - 1].Label = " ";
                m_Series.Points.Add(yVal);
                m_Series.Points[m_Series.Points.Count - 1].Label = yVal.ToString() + "N";
                return;
            }

            m_Series.Points.RemoveAt(0);
            m_Series.Points[m_Series.Points.Count - 1].Label = " ";
            m_Series.Points.Add(yVal);
            m_Series.Points[m_Series.Points.Count - 1].Label = yVal.ToString() + "N";
        }

        private void M_Timer_Tick_2(object sender, EventArgs e)
        {
            int yVal = m_Random.Next(32, 70);

            if (m_Series_2.Points.Count < 20)
            {
                m_Series_2.Points[m_Series_2.Points.Count - 1].Label = " ";
                m_Series_2.Points.Add(yVal);
                m_Series_2.Points[m_Series_2.Points.Count - 1].Label = yVal.ToString() + "N";
                return;
            }

            m_Series_2.Points.RemoveAt(0);
            m_Series_2.Points[m_Series_2.Points.Count - 1].Label = " ";
            m_Series_2.Points.Add(yVal);
            m_Series_2.Points[m_Series_2.Points.Count - 1].Label = yVal.ToString() + "N";
        }

        private void SetChartArea()
        {
            m_ChartArea.Name = "TestChartArea";
            m_ChartArea.AxisX.Minimum = 1;
            m_ChartArea.AxisX.Maximum = 23;
            m_ChartArea.AxisY.Minimum = 0d;
            m_ChartArea.AxisY.Maximum = 80d;
            m_ChartArea.AxisX.IsStartedFromZero = true; // X 軸起點從0開始 沒摸索出來有啥用
            m_ChartArea.AxisX.IntervalOffset = 0;
            m_ChartArea.AxisX.Interval = 2;
            m_ChartArea.AxisX.IsMarginVisible = false;

            m_ChartArea.AxisX.MajorGrid.Enabled = true; //X軸上網(wǎng)格
            m_ChartArea.AxisY.MajorGrid.Enabled = true; //Y軸上網(wǎng)格
            m_ChartArea.AxisX.Title = "X軸";
            m_ChartArea.AxisY.Title = "Y軸";
            m_ChartArea.AxisX.TitleAlignment = System.Drawing.StringAlignment.Far;
            m_ChartArea.AxisY.TitleAlignment = System.Drawing.StringAlignment.Far;
        }

        private void SetSeries()
        {
            m_Series.ChartArea = "TestChartArea";
            m_Series.ChartType = SeriesChartType.Spline;
            m_Series.Color = System.Drawing.Color.Blue;
            m_Series.BorderWidth = 1;
            m_Series.MarkerColor = System.Drawing.Color.Green;
            m_Series.MarkerSize = 5;
            m_Series.MarkerStyle = MarkerStyle.Circle;
            m_Series.Legend = "No.1";
            m_Series.LegendText = "保壓壓力";

            //series.Points.AddXY(0, 1);
            m_Series.Points.AddXY("0", 0); // 這樣跟X標簽一起添加
            m_Series.Points.AddXY("1", 10);
            m_Series.Points.AddXY("2", 35);
            m_Series.Points.AddXY("3", 32);
            m_Series.Points.AddXY("4", 79);
            m_Series.Points.AddXY("5", 40);
            m_Series.Points.AddXY("6", 67);
            m_Series.Points.AddXY("7", 77);
            m_Series.Points.AddXY("8", 48);

            // Label 顯示最后添加的一個數(shù)據(jù) Y 值
            m_Series.IsValueShownAsLabel = true;
            m_Series.Label = "#LABEL";
            for (int i = 0; i < m_Series.Points.Count; i++)
            {
                if (i < m_Series.Points.Count - 1)
                {
                    m_Series.Points[i].Label = " "; // 給個空白
                    continue;
                }

                m_Series.Points[i].Label = m_Series.Points[i].YValues[0].ToString() + "N";
            }


            /***********曲線二************/

            m_Series_2 = new Series("Series Name NO.2");
            m_Series_2.ChartType = SeriesChartType.Line;
            m_Series_2.MarkerColor = System.Drawing.Color.Green;
            m_Series_2.MarkerSize = 5;
            m_Series_2.MarkerStyle = MarkerStyle.Circle;
            chartTest.Series.Add(m_Series_2);
            m_Series_2.LegendText = "壓力值";
            m_Series_2.Points.Add(4);
            m_Series_2.Points.Add(10);
            m_Series_2.Points.Add(45);
            m_Series_2.Points.Add(66);
            m_Series_2.Points.Add(45);
            m_Series_2.Points.Add(23);
            m_Series_2.Points.Add(56);
        }

        private void SetTitle()
        {
            // 標題
            // 在 Constructor()  Add 添加了
        }

        private void SetLegend()
        {
            m_Legend.Docking = Docking.Top; // 位置
        }

        private void SetStripLine()
        {
            // 加一條線 紅色警告線 
            StripLine stripline = new StripLine();
            stripline.Interval = 0;
            stripline.IntervalOffset = 38;
            stripline.StripWidth = 0.3;
            stripline.BackColor = System.Drawing.Color.Red;
            stripline.BorderDashStyle = ChartDashStyle.Solid;
            stripline.TextAlignment = System.Drawing.StringAlignment.Near;
            stripline.Text = "下限:38";
            m_ChartArea.AxisY.StripLines.Add(stripline);
            stripline = new StripLine();
            stripline.Interval = 0;
            stripline.IntervalOffset = 68;
            stripline.StripWidth = 0.2;
            stripline.Text = "上限:68";
            stripline.TextLineAlignment = System.Drawing.StringAlignment.Far;
            stripline.TextAlignment = System.Drawing.StringAlignment.Near;
            stripline.BackColor = System.Drawing.Color.Red;
            stripline.BorderDashStyle = ChartDashStyle.Solid;
            m_ChartArea.AxisY.StripLines.Add(stripline);
        }

        private void btn_Start_Click(object sender, RoutedEventArgs e)
        {
            m_Timer.Enabled = true;
        }

        private void btn_Stop_Click(object sender, RoutedEventArgs e)
        {
            m_Timer.Enabled = false;
        }

        private void btn_ChangeEnable_Click(object sender, RoutedEventArgs e)
        {
            m_Series_2.Enabled = !m_Series_2.Enabled;
        }
    }
}

參考:

https://www.cnblogs.com/stackmiao/p/11463284.html

https://www.cnblogs.com/ljhandsomeblog/p/11239859.html

https://www.cnblogs.com/Betty-IT/p/9198557.html

https://zhuanlan.zhihu.com/p/337334836 // c# 在已經(jīng)畫好的chart上畫一條線

到此這篇關于C# Chart 簡單使用的文章就介紹到這了,更多相關C# Chart使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C#使用NOPI庫實現(xiàn)導入Excel文檔

    C#使用NOPI庫實現(xiàn)導入Excel文檔

    NPOI中N指代的是.Net,POI是一個完全開源的Java寫成的庫,能夠在沒有安裝微軟Office或者相應環(huán)境的情況下讀寫Excel、Word等微軟OLE2組件文檔,幾乎支持所有的Office97~Office2007的文件格式。所以NPOI就是POI項目的.Net版本。
    2017-05-05
  • c#判斷輸入的是不是數(shù)字的小例子

    c#判斷輸入的是不是數(shù)字的小例子

    c#判斷輸入的是不是數(shù)字的小例子,需要的朋友可以參考一下
    2013-03-03
  • C#進度軸控件分享

    C#進度軸控件分享

    這里給大家介紹的是使用C#實現(xiàn)的進度軸的方法和示例,非常的實用,有需要的小伙伴可以參考下。
    2015-06-06
  • C# memcache 使用介紹

    C# memcache 使用介紹

    這篇文章主要介紹了C# memcache 使用介紹,需要的朋友可以參考下
    2015-05-05
  • C#實現(xiàn)銷售管理系統(tǒng)

    C#實現(xiàn)銷售管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C#實現(xiàn)銷售管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C#把整個文件內(nèi)容讀入字符串變量的方法

    C#把整個文件內(nèi)容讀入字符串變量的方法

    這篇文章主要介紹了C#把整個文件內(nèi)容讀入字符串變量的方法,實例分析了C#操作文件與字符串的相關技巧,需要的朋友可以參考下
    2015-07-07
  • C# WinForm實現(xiàn)Win7 Aero透明效果代碼

    C# WinForm實現(xiàn)Win7 Aero透明效果代碼

    這篇文章主要介紹了C# WinForm實現(xiàn)Win7 Aero透明效果代碼,通過調(diào)用dwmapi.dll相關方法實現(xiàn),需要的朋友可以參考下
    2014-07-07
  • c# 實現(xiàn)自動掃雷

    c# 實現(xiàn)自動掃雷

    這篇文章主要介紹了c# 實現(xiàn)自動掃雷的方法,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-02-02
  • C#解析json文件的實現(xiàn)代碼

    C#解析json文件的實現(xiàn)代碼

    最近需要用c#解析json文件,以前沒用過這個,百度了一下找到了這篇文章感覺不錯,特分享下
    2013-06-06
  • C#實現(xiàn)冒泡排序算法的代碼示例

    C#實現(xiàn)冒泡排序算法的代碼示例

    冒泡排序即是對數(shù)組每次輪循出最大數(shù)或最小數(shù)放在隊尾,這里我們來看一下C#實現(xiàn)冒泡排序算法的代碼示例,需要的朋友可以參考下
    2016-07-07

最新評論