多个颜色的列表视图上的上下文操作

时间:2017-10-09 06:42:26

标签: listview xamarin.ios xamarin.forms contextmenu custom-renderer

以前我需要修改列表视图中的上下文操作颜色,并且使用自定义渲染器,

var cell = base.GetCell(item, reusableCell, tv);
CGRect rect = new CGRect(0, 0, 1, 1);
CGSize size = rect.Size;
UIGraphics.BeginImageContext(size);

CGContext currentNormalContext = UIGraphics.GetCurrentContext();               
currentNormalContext.SetFillColor(Styles.SelectionGreen.ToCGColor());
currentNormalContext.FillRect(rect);
var normalBackgroundImage = UIGraphics.GetImageFromCurrentImageContext();
currentNormalContext.Dispose();

var t = Type.GetType("Xamarin.Forms.Platform.iOS.ContextActionsCell,
        Xamarin.Forms.Platform.iOS, Version=1.3.1.0, Culture=neutral, PublicKeyToken=null");

var normal = t.GetField("NormalBackground", BindingFlags.Public | 
             BindingFlags.NonPublic | BindingFlags.Static);
if (normal != null) normal.SetValue(null, normalBackgroundImage);

return cell;

如果有任何可能的方法在同一个上下文菜单中为不同的场景使用三种以上的颜色,请建议。

0 个答案:

没有答案