Avalonia如何嵌入原生控件 Avalonia Native Controls

admin 百科 13
Avalonia不提供原生控件库,所有标准控件均为Skia自绘;嵌入原生控件需用NativeControlHost,支持WinForms、Gtk、Cocoa等平台句柄,但需手动处理生命周期、尺寸同步及事件桥接。

Avalonia如何嵌入原生控件 Avalonia Native Controls-第1张图片-佛山资讯网

Avalonia 本身不提供“原生控件库”意义上的 Avalonia Native Controls(即一套由操作系统直接渲染、非 Avalonia 自绘的 Win32/WPF/Gtk 原生控件集合),它走的是自绘(skia-based)路线,所有标准控件(Button、TextBox 等)都是 Avalonia 自己实现并跨平台一致渲染的。

真正能嵌入原生控件的方式是 NativeControlHost

若你确实需要在 Avalonia 界面中显示平台专属的原生控件(如 WinForms Control、WPF Element、或 Linux 下的 Gtk Widget),核心方案是使用:

  • NativeControlHost 控件:Avalonia 官方提供的宿主容器,专用于承载各平台原生句柄(HWND、GtkWidget、NSView 等)
  • 它不渲染内容,只负责生命周期管理、尺寸同步和基本消息转发
  • 需手动创建原生控件,并将其平台句柄(如 WinForms.Control.Handle)赋给 NativeControlHost.Child 或通过 IPlatformHandle 封装后设置

WinForms 嵌入典型流程(Windows)

这是最常见场景,适用于渐进式迁移:

标签: linux windows 操作系统 mac macos win c# cos red

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~