Xamarin Forms 中未显示 OxyPlot
OxyPlot not showing in Xamarin Forms
关于这个特定问题有很多问题,但是 none 提出的解决方案对我有用。我无法让 OxyPlot 出现在 iOS 或 Android 中。我已经按照设置说明在 Xamarin Forms init 之后添加了各种 Init 方法。到目前为止我尝试了什么:
- 添加 HeightRequest + WidthRequest
- 没有将它放在堆栈布局中
- 在初始化之后添加一个虚拟变量
- 通过 OxyPlot 的 nuget 提要转到最新的不稳定版本 (https://www.myget.org/F/oxyplot)
我正在使用 Xamarin Android 版本 25.4.0.2、Xamarin Forms 2.4.0.18342 和 OxyPlot 版本 1.0.0。
这是XAML:
<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"
x:Class="Example.Stats"
NavigationPage.HasNavigationBar="false">
<ContentPage.Content>
<AbsoluteLayout>
<oxy:PlotView Model="{Binding Model}"
AbsoluteLayout.LayoutBounds="20,0,.9,.9" AbsoluteLayout.LayoutFlags="WidthProportional,HeightProportional" />
</AbsoluteLayout>
</ContentPage.Content>
</ContentPage>
和部分 class:
namespace Gatemaster
{
public partial class Stats : ContentPage
{
public PlotModel Model {
get {
var model = new PlotModel { Title = "World population by continent" };
var ps = new PieSeries
{
StrokeThickness = .25,
InsideLabelPosition = .25,
AngleSpan = 360,
StartAngle = 0
};
// http://www.nationsonline.org/oneworld/world_population.htm
// http://en.wikipedia.org/wiki/Continent
ps.Slices.Add(new PieSlice("Africa", 1030) { IsExploded = false });
ps.Slices.Add(new PieSlice("Americas", 929) { IsExploded = false });
ps.Slices.Add(new PieSlice("Asia", 4157));
ps.Slices.Add(new PieSlice("Europe", 739) { IsExploded = false });
ps.Slices.Add(new PieSlice("Oceania", 35) { IsExploded = false });
model.Series.Add(ps);
return model;
}
private set {
}
}
public Stats()
{
InitializeComponent();
}
}
}
根据@Jason,我错过了设置 BindingContext。我发现没有抛出关于丢失 属性...
的错误非常奇怪
关于这个特定问题有很多问题,但是 none 提出的解决方案对我有用。我无法让 OxyPlot 出现在 iOS 或 Android 中。我已经按照设置说明在 Xamarin Forms init 之后添加了各种 Init 方法。到目前为止我尝试了什么:
- 添加 HeightRequest + WidthRequest
- 没有将它放在堆栈布局中
- 在初始化之后添加一个虚拟变量
- 通过 OxyPlot 的 nuget 提要转到最新的不稳定版本 (https://www.myget.org/F/oxyplot)
我正在使用 Xamarin Android 版本 25.4.0.2、Xamarin Forms 2.4.0.18342 和 OxyPlot 版本 1.0.0。
这是XAML:
<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"
x:Class="Example.Stats"
NavigationPage.HasNavigationBar="false">
<ContentPage.Content>
<AbsoluteLayout>
<oxy:PlotView Model="{Binding Model}"
AbsoluteLayout.LayoutBounds="20,0,.9,.9" AbsoluteLayout.LayoutFlags="WidthProportional,HeightProportional" />
</AbsoluteLayout>
</ContentPage.Content>
</ContentPage>
和部分 class:
namespace Gatemaster
{
public partial class Stats : ContentPage
{
public PlotModel Model {
get {
var model = new PlotModel { Title = "World population by continent" };
var ps = new PieSeries
{
StrokeThickness = .25,
InsideLabelPosition = .25,
AngleSpan = 360,
StartAngle = 0
};
// http://www.nationsonline.org/oneworld/world_population.htm
// http://en.wikipedia.org/wiki/Continent
ps.Slices.Add(new PieSlice("Africa", 1030) { IsExploded = false });
ps.Slices.Add(new PieSlice("Americas", 929) { IsExploded = false });
ps.Slices.Add(new PieSlice("Asia", 4157));
ps.Slices.Add(new PieSlice("Europe", 739) { IsExploded = false });
ps.Slices.Add(new PieSlice("Oceania", 35) { IsExploded = false });
model.Series.Add(ps);
return model;
}
private set {
}
}
public Stats()
{
InitializeComponent();
}
}
}
根据@Jason,我错过了设置 BindingContext。我发现没有抛出关于丢失 属性...
的错误非常奇怪