Good Day everyone。私はXamarin.Formsポータブルアプリケーションを作成しており、OxyPlotを使用してチャートを表示したいと考えています。Xamarin.Forms:OxyPlotの円グラフが表示されません
OxyPlotについてのhereの文書に続いています。しかし、私はまだちょっと混乱します。あなたは私が従ったプロセスを見て、私がしたことが正しいかどうかを確認できますか?これらは私の理解に基づいています。
は、ここに私がやったことだ:最新バージョンへ
- 更新Xamarin.Forms NuGetパッケージ。
- OxyPlot.Xamarin.Forms NuGetパッケージをポータブルおよびプラットフォーム固有のプロジェクトに追加します。
- OxyPlotレンダラを初期化するには、OxyPlot.Xamarin.Forms.Platform.Android.PlotViewRenderer.Init();を追加します。私のMainActivity.csのXamarin.Forms.Forms.Init()の直後
ポータブルアプリケーションプロジェクトでは、このプロットビューをApp.cs.xに追加しました。私のXAMLページで
public App() { this.MainPage = new ContentPage { Content = new PlotView { Model = new PlotModel { Title = "Hello, Forms!" }, VerticalOptions = LayoutOptions.Fill, HorizontalOptions = LayoutOptions.Fill, }, }; }
、私はこの名前空間宣言を追加:
のxmlns:オキシ= "CLR名前空間:OxyPlot.Xamarin.Formsを、アセンブリ= OxyPlot.Xamarin.Forms "
これを同じページに追加しました。ここで
は、その後全体SalesPage.xaml<oxy:PlotView Model="{Binding Model1}" VerticalOptions="Center" HorizontalOptions="Center" />
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:oxy="clr-namespace:OxyPlot.Xamarin.Forms;assembly=OxyPlot.Xamarin.Forms" xmlns:ViewModels="clr-namespace:XamarinFormsDemo.ViewModels;assembly=XamarinFormsDemo" x:Class="XamarinFormsDemo.Views.SalesPage" BackgroundImage="bg3.jpg" Title="Sales Page"> <ContentPage.BindingContext> <ViewModels:SalesVM/> </ContentPage.BindingContext> <oxy:PlotView Model="{Binding Model1}" VerticalOptions="Center" HorizontalOptions="Center"/> </ContentPage>
のコードですが、私は名前の私のチャートの内容が含まれている私の見解モデルを呼び出そうとしましたPiewViewModel.cs
using OxyPlot; using OxyPlot.Series; namespace ExampleLibrary { public class PieViewModel { private PlotModel modelP1; public PieViewModel() { modelP1 = new PlotModel { Title = "Pie Sample1" }; dynamic seriesP1 = new PieSeries { StrokeThickness = 2.0, InsideLabelPosition = 0.8, AngleSpan = 360, StartAngle = 0 }; seriesP1.Slices.Add(new PieSlice("Africa", 1030) { IsExploded = false, Fill = OxyColors.PaleVioletRed }); seriesP1.Slices.Add(new PieSlice("Americas", 929) { IsExploded = true }); seriesP1.Slices.Add(new PieSlice("Asia", 4157) { IsExploded = true }); seriesP1.Slices.Add(new PieSlice("Europe", 739) { IsExploded = true }); seriesP1.Slices.Add(new PieSlice("Oceania", 35) { IsExploded = true }); modelP1.Series.Add(seriesP1); } public PlotModel Model1 { get { return modelP1; } set { modelP1 = value; } } } }
ここは私のMainActivity.cs for Androidです
using System; using Android.App; using Android.Content.PM; using Android.Runtime; using Android.Views; using Android.Widget; using Android.OS; using ImageCircle.Forms.Plugin.Droid; namespace XamarinFormsDemo.Droid { [Activity(Label = "XamarinFormsDemo", Icon = "@drawable/recordsicon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity { protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); global::Xamarin.Forms.Forms.Init(this, bundle); OxyPlot.Xamarin.Forms.Platform.Android.PlotViewRenderer.Init(); LoadApplication(new App()); ImageCircleRenderer.Init(); } } }
私が間違ったことを教えてもらえますか?グラフは表示されません。私のような初心者への助けは非常に高く評価されます。どうもありがとう。
から派生する必要がありますか?または実行時に作成されたPlotViewのような 'Title =" Hello、Forms! "'があり、関連するPieViewModelバインディングを持つDesign-Time作成PlotViewに 'Title =" Pie Sample1 "が表示されることを期待していますか? –
@JeremyThompson画面には何もありません。 –
あなたの 'public class MainActivity:AndroidActivity'を表示できますか?例えば:https://github.com/oxyplot/documentation-examples/blob/master/HelloWorld/XamarinFormsApp1/XamarinFormsApp1/XamarinFormsApp1.Android/MainActivity.cs –