Текущие рабочие реализации:
В WPF я использую HwndHost для создания собственного дескриптора:
Код: Выделить всё
public class HandleControl : HwndHost
{
protected override HandleRef BuildWindowCore(HandleRef hwndParent)
{
IntPtr hwndHost = CreateWindowEx(0, "static", "",
WS_CHILD | WS_VISIBLE,
0, 0, width, height, hwndParent.Handle, IntPtr.Zero, IntPtr.Zero, 0);
ReadyCommand?.Execute(hwndHost);
return new HandleRef(this, hwndHost);
}
}
Я нашел решения, которые показывают, как получить дескриптор главного окна, используя:
Код: Выделить всё
var tops = Win32Window.GetProcessWindows();
var winUI3Window = tops.FirstOrDefault(w => w.ClassName == "WinUIDesktopWin32WindowClass");
Что мне нужно:
- Получить собственный дескриптор (HWND в Windows) конкретных элементов, таких как Frame, Border и т. д. Эквивалентно HwndHost WPF, но на уровне элемента в MAUI
- Иметь возможность передать этот дескриптор в Dahua SDK для выполнять рендеринг в определенных элементах управления
- Пользовательские обработчики/рендереры (но они больше ориентированы на стиль)
- Код, специфичный для платформы, с #if WINDOWS
- Window.Current.Handler.PlatformView (возвращает дескриптор окна, а не element)
Подробнее здесь: https://stackoverflow.com/questions/797 ... n-net-maui
Мобильная версия