我遇到的问题是draw方法永远不会被调用,而且我不太确定我哪里出错了.我的代码在下面(我已经删除了所有不必要的位),非常感谢任何帮助!
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; } }
为了确保我不会发疯,我复制并粘贴了NControl GitHub Repo上的示例,但似乎也没有用.
先感谢您!
解决方法 >确保在Forms.Init()之后调用NControlVIEWrenderer.Init()>在public overrIDe voID Draw(NGraphics.ICanvas canvas,NGraphics.Rect rect)中,你不一定需要调用base.Draw()
>尝试调用CustomGrID.InvalIDate(),这应该强制重绘
>确保你的控件实际上在屏幕上,在视口内并且大小大于0,你可以给它一个粉红色的背景,看看它是否显示在任何地方……
>为什么你说它到目前为止似乎很棒.什么时候显然没有?比如,实际工作的那部分是什么?
>在子类’ctor中设置一个断点,看看它是否实际被实例化了……
这些都有帮助吗?
@H_404_34@ 总结以上是内存溢出为你收集整理的c# – NControl绘制方法没有触发全部内容,希望文章能够帮你解决c# – NControl绘制方法没有触发所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)