Xamarin圖表開發基礎教程(8)OxyPlot框架

大學霸發表於2019-11-16

Xamarin圖表開發基礎教程(8)OxyPlot框架

【示例OxyPlotFormsDemo 】在Xamarin.Forms中實現線圖的顯示。

(1)開啟Xamarin.Forms專案。

(2)將OxyPlot.Xamarin.Forms元件新增到各個子專案中的引入中。

(3)開啟OxyPlotFormsDemo.Android子專案的MainActivity.cs檔案,初始化OxyPlot渲染器,程式碼如下:

using System;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
namespace OxyPlotFormsDemo.Droid
{
    [Activity(Label = "OxyPlotFormsDemo", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource = Resource.Layout.Toolbar;
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            OxyPlot.Xamarin.Forms.Platform.Android.PlotViewRenderer.Init();
            LoadApplication(new App());
        }
    }
}

(4)開啟OxyPlotFormsDemo.iOS子專案的AppDelegate.cs檔案,初始化OxyPlot渲染器,程式碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using Foundation;
using UIKit;
namespace OxyPlotFormsDemo.iOS
{
    [Register("AppDelegate")]
    public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
    {
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            global::Xamarin.Forms.Forms.Init();
            OxyPlot.Xamarin.Forms.Platform.iOS.PlotViewRenderer.Init();
            LoadApplication(new App());
            return base.FinishedLaunching(app, options);
        }
    }
}

(5)開啟App.xaml.cs檔案,完成剩餘的步驟,即建立PlotView檢視、繪製圖表、設定顯示模式等。程式碼如下:

using OxyPlot;
using OxyPlot.Axes;
using OxyPlot.Series;
using OxyPlot.Xamarin.Forms;
using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace OxyPlotFormsDemo
{
    public partial class App : Application
    {
        public App()
        {
            MainPage = new ContentPage
            {
                //建立並將主頁面的內容設定為PlotView
                Content = new PlotView
                {
                    Model = CreatePlotModel(),
                    VerticalOptions = LayoutOptions.Fill,
                    HorizontalOptions = LayoutOptions.Fill,
                }
            };
        }
        //繪製圖表
        private PlotModel CreatePlotModel()
        {
            //建立圖表模式
            var plotModel = new PlotModel
            {
                Title = "OxyPlot Demo"
            };
            //新增座標軸
            plotModel.Axes.Add(new LinearAxis { Position = AxisPosition.Bottom });
            plotModel.Axes.Add(new LinearAxis { Position = AxisPosition.Left, Maximum = 10, Minimum = 0 });
            //建立資料列
            var series1 = new LineSeries
            {
                Title = "Data",
                MarkerType = MarkerType.Circle,
                MarkerSize = 4,
                MarkerStroke = OxyColors.White
            };
            //新增資料點
            series1.Points.Add(new DataPoint(0.0, 6.0));
            series1.Points.Add(new DataPoint(1.4, 2.1));
            series1.Points.Add(new DataPoint(2.0, 4.2));
            series1.Points.Add(new DataPoint(3.3, 2.3));
            series1.Points.Add(new DataPoint(4.7, 7.4));
            series1.Points.Add(new DataPoint(6.0, 6.2));
            series1.Points.Add(new DataPoint(8.9, 8.9));
            //新增資料列
            plotModel.Series.Add(series1);
            return plotModel;
        }
        ……
    }
}

執行程式,會看到如圖1.3所示的效果。

 

圖1.3  Android的效果與 iOS的效果

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-2664448/,如需轉載,請註明出處,否則將追究法律責任。

相關文章