C# 控制绘制方法不触发
我最近发现了可以与Xamarin.Forms一起使用的NGraphics&NControl库,到目前为止,它看起来很棒 我遇到的问题是,draw方法从未被调用,我也不太确定哪里出了问题。下面是我的代码(我已经去掉了所有不必要的部分),非常感谢您的帮助C# 控制绘制方法不触发,c#,xamarin,custom-controls,C#,Xamarin,Custom Controls,我最近发现了可以与Xamarin.Forms一起使用的NGraphics&NControl库,到目前为止,它看起来很棒 我遇到的问题是,draw方法从未被调用,我也不太确定哪里出了问题。下面是我的代码(我已经去掉了所有不必要的部分),非常感谢您的帮助 public class CustomGrid : NControlView { public CustomGrid () { base.Invalidate (); //Invali
public class CustomGrid : NControlView
{
public CustomGrid ()
{
base.Invalidate (); //Invalidating the control doesn't redraw the control
Content = new Label {BackgroundColor = Xamarin.Forms.Color.Transparent};
BackgroundColor = Xamarin.Forms.Color.Blue;
}
public override void Draw (NGraphics.ICanvas canvas, NGraphics.Rect rect)
{
base.Draw(canvas, rect);
//foreach column draw the grid line on the right
foreach (CustomColumn c in ColumnCollection)
{
canvas.DrawLine (c.CoOrds.startX,c.CoOrds.startY, c.CoOrds.EndX, c.CoOrds.EndY,Colors.White);
}
//for each row draw the bottom grid line
foreach (CustomRow r in RowCollection)
{
canvas.DrawLine (r.CoOrds.startX,r.CoOrds.startY, r.CoOrds.EndX, r.CoOrds.EndY,Colors.White);
}
}
public List<CustomColumn> ColumnCollection { get; set; }
public List<CustomRow> RowCollection { get; set; }
}
公共类CustomGrid:NControlView
{
公共自定义网格()
{
base.Invalidate();//使控件无效不会重新绘制控件
Content=newlabel{BackgroundColor=Xamarin.Forms.Color.Transparent};
BackgroundColor=Xamarin.Forms.Color.Blue;
}
公共覆盖无效绘制(NGraphics.ICanvas画布,NGraphics.Rect Rect)
{
绘制(画布、矩形);
//foreach column在右侧绘制网格线
foreach(ColumnCollection中的CustomColumn c)
{
canvas.drawine(c.CoOrds.startX、c.CoOrds.startY、c.CoOrds.EndX、c.CoOrds.EndY、Colors.White);
}
//为每行绘制底部网格线
foreach(行集合中的自定义行r)
{
canvas.drawine(r.CoOrds.startX、r.CoOrds.startY、r.CoOrds.EndX、r.CoOrds.EndY、Colors.White);
}
}
公共列表列集合{get;set;}
公共列表行集合{get;set;}
}
为了确保我没有发疯,我复制并粘贴了在上找到的示例,但这似乎也不起作用
提前谢谢你
Forms.Init()之后调用nControlviewrender.Init()
public override void Draw(NGraphics.ICanvas canvas,NGraphics.Rect Rect)
中,您不必调用base.Draw()
CustomGrid.Invalidate()
,这将强制重新绘制这些有帮助吗?如果你最小化应用程序或将其移出屏幕,然后将其带回来,绘图是否有效?你在哪个平台上进行测试?使用Xamarin Player(Nexus 4)在Andorid上进行测试-使用菜单按钮选择一个新的应用程序,然后返回应用程序也无法修复。第一个解决了问题。我读了那么多次那个文档,我不知道我怎么会错过它。