c# - 如何在 xamarin.mac 中绘制矩形

标签 c# xamarin xamarin.mac

我正在尝试在 xamarin.mac 框架中绘制一个矩形。这似乎可以通过 CoreGrpahics 命名空间来完成,但我不确定它是如何与 xamarin Hook 的。例如

        NSColor.Black.Set();
        NSBezierPath.StrokeLine(new CGPoint(-10.0f, 0.0f), new CGPoint(10.0f, 0.0f));

当我认为它应该使单行出现时,不会在屏幕上显示任何内容。这在另一个 Xamarin 中似乎微不足道。框架,因为有可用的内置函数,但 xamarin.mac 文档非常稀少。

最佳答案

欢迎光临!很高兴看到更多 Xamarin.Mac 用户。

@SushiHangover 对此进行了暗示,但您需要处于有效的绘制上下文中。请原谅我是否过度解释,但像您正在讨论的自定义绘图通常是在 NSView 中完成的,通常是通过覆盖 View 的 DrawRect(CGRect dirtyRect) 方法。该方法由 AppKit 在适当的图形上下文中固有地调用。因此,如果在 View 的该方法中调用,您的代码将正常工作。请记住,这些绘图方法会被经常调用,并且必须高效。

如果您要使用 CGPath 而不是 NSBezierPath,则需要通过调用 NSGraphicsContext.CurrentContext.CGContext.addPath(path) 将该路径添加到上下文中。

我在这里为您制作了一个名为“MacOS 自定义绘图”的小 Xamarin 工作簿,它显示了两种方式:https://github.com/NickSpag/Workbooks .我还建议使用 Workbooks 进行绘图练习和测试,因为它们可以非常轻松地持续快速地重新加载您的代码。

关于c# - 如何在 xamarin.mac 中绘制矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53310230/

相关文章:

c# - 如何从小数部分取零?

c# - 获取对象类的类型、属性和值

xamarin - 如何在 Xamarin Forms 中向文本单元格添加图标

c# - Xamarin.Mac - 发送通知

xamarin - 如何在 Xamarin.Mac 中使用 WebView

ssl - 在 Mono 上验证 x509 证书(OS X 可信根)

c# - 使用for循环创建ID来创建怪物

c# - 我们真的需要对 DLL 进行硬编码吗

android - 使用动画对象而不是资源 ID 覆盖挂起的过渡

c# - Xamarin.Android PackageInstaller Session.commit "Files still open"apk 静默安装异常