我试图编写一个绘图应用程序,允许用户在画布上选择两个点,并在这些点之间逐像素绘制一条线。在WinForms中,这是一个简单的解决方案--创建画布,获取其位图,使用SetPixel方法在位图上绘制,并替换画布位图。我想知道在AvaloniaUI中是否有类似的方法来做到这一点?据我所知,它在引擎盖下使用SkiaSharp。然而,在SKCanvas上呈现Avalonia.Controls.Canvas的解决方案似乎.太难了。尽管SKBitmap也有SetPixel方法。问题不是如何画线,而是如何在AvaloniaUI Avalonia.Controls.Canvas.中设置位图上的单个像素,并将此位图设置为Avalonia.Controls.Canvas.。以下是我发现的一些链接:
尽管这听起来很诱人,但大学也不允许绘制1x1大小的矩形,如官方文档示例(https://docs.avaloniaui.net/docs/controls/canvas)中所示。
我没有要求任何人为我做家庭作业--如果你担心这个问题,请把这看作是一个框架比较问题,而不是“请为我做那个”的问题。我找到并联系了我可以使用的解决方案--在我看来,应该有一个更简单的方法来实现我所寻求的结果。这就是我问这个问题的原因--以防我错过了什么。
做一件绝地的事情:这不是一个学生试图放弃他的工作对其他人。你可以按你的生意办事
发布于 2022-04-22 22:12:07
更新:您可以在图像控件上交换位图:https://docs.avaloniaui.net/docs/controls/image
最初的问题(虽然说得很糟糕,我的坏)是为了澄清是否有一种方法来执行SetPixel操作的Avalonia位图。不幸的是,目前它似乎不是一个可用的选项:因此,唯一的方法是创建一个自定义绘图上下文或控件,或者在不同位图类型之间(如System.Drawing.Bitmap或SkBitmap从SkiaSharp到Avalonia.WriteableBitmap )之间进行转换。所有这些解决方案都在最初的问题中引用。
https://stackoverflow.com/questions/71970013
复制相似问题