Primary WPF APIs:
HwndHostWindowInteropHelperWindowsFormsHostPrimary Avalonia APIs:
NativeControlHostIPlatformHandle)TopLevel and platform features| WPF | Avalonia |
|---|---|
HwndHost for native child window |
NativeControlHost |
| direct window handle interop helper | TopLevel/platform-handle access paths |
WindowsFormsHost |
explicit native-host integration layer |
WPF C#:
public sealed class NativePreviewHost : HwndHost
{
protected override HandleRef BuildWindowCore(HandleRef hwndParent)
{
// create child HWND
}
}
Avalonia XAML:
<local:NativePreviewHost xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MyApp.Controls" />
using Avalonia.Controls;
using Avalonia.Controls.Platform;
using Avalonia.Platform;
public sealed class NativePreviewHost : NativeControlHost
{
protected override IPlatformHandle CreateNativeControlCore(IPlatformHandle parent)
{
// create platform-native child and return its handle wrapper.
return base.CreateNativeControlCore(parent);
}
protected override void DestroyNativeControlCore(IPlatformHandle control)
{
// release native resources allocated in CreateNativeControlCore.
base.DestroyNativeControlCore(control);
}
}
TopLevel.DestroyNativeControlCore.