Align background color handling in iOS with Android implementation (#546)

This commit is contained in:
Oystein Bjorke 2015-10-11 11:35:09 +02:00
Родитель 0c2e2e7336
Коммит 0eacf93058
2 изменённых файлов: 13 добавлений и 15 удалений

Просмотреть файл

@ -21,7 +21,7 @@ namespace OxyPlot.Xamarin.Forms
/// <returns>The converted color.</returns> /// <returns>The converted color.</returns>
public static global::Xamarin.Forms.Color ToXamarinForms(this OxyColor c) public static global::Xamarin.Forms.Color ToXamarinForms(this OxyColor c)
{ {
return new global::Xamarin.Forms.Color(c.R / 255d, c.G / 255d, c.B, c.A / 255d); return global::Xamarin.Forms.Color.FromRgba(c.R, c.G, c.B, c.A);
} }
/// <summary> /// <summary>
@ -31,7 +31,7 @@ namespace OxyPlot.Xamarin.Forms
/// <returns>The converted color.</returns> /// <returns>The converted color.</returns>
public static OxyColor ToOxyColor(this global::Xamarin.Forms.Color c) public static OxyColor ToOxyColor(this global::Xamarin.Forms.Color c)
{ {
return OxyColor.FromArgb((byte)(c.R * 255), (byte)(c.G * 255), (byte)(c.B * 255), (byte)(c.A * 255)); return OxyColor.FromArgb((byte)(c.A * 255), (byte)(c.R * 255), (byte)(c.G * 255), (byte)(c.B * 255));
} }
} }
} }

Просмотреть файл

@ -246,16 +246,6 @@ namespace OxyPlot.Xamarin.iOS
((IPlotModel)actualModel).Update(updateData); ((IPlotModel)actualModel).Update(updateData);
} }
if (actualModel != null && !actualModel.Background.IsUndefined())
{
this.BackgroundColor = actualModel.Background.ToUIColor();
}
else
{
// Use white as default background color
this.BackgroundColor = UIColor.White;
}
this.SetNeedsDisplay(); this.SetNeedsDisplay();
} }
@ -302,11 +292,19 @@ namespace OxyPlot.Xamarin.iOS
/// <param name="rect">The rectangle to draw.</param> /// <param name="rect">The rectangle to draw.</param>
public override void Draw(CoreGraphics.CGRect rect) public override void Draw(CoreGraphics.CGRect rect)
{ {
if (this.model != null) var actualModel = (IPlotModel)this.model;
if (actualModel != null)
{ {
using (var renderer = new CoreGraphicsRenderContext(UIGraphics.GetCurrentContext())) var context = UIGraphics.GetCurrentContext ();
using (var renderer = new CoreGraphicsRenderContext(context))
{ {
((IPlotModel)this.model).Render(renderer, rect.Width, rect.Height); if (actualModel.Background.IsVisible())
{
context.SetFillColor (actualModel.Background.ToCGColor ());
context.FillRect (rect);
}
actualModel.Render(renderer, rect.Width, rect.Height);
} }
} }
} }