Как получить дескриптор HWND элементов в .Net MAUIC#

Место общения программистов C#
Ответить
Anonymous
 Как получить дескриптор HWND элементов в .Net MAUI

Сообщение Anonymous »

Я интегрирую SDK Dahua CCTV (для камер прямой трансляции) в приложение .NET MAUI. Я успешно реализовал это в WPF с помощью HwndHost и в Avalonia с помощью NativeControlHost, но у меня возникают проблемы с .NET MAUI.
Текущие рабочие реализации:
В 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);
}
}
Конкретная проблема в .NET MAUI:
Я нашел решения, которые показывают, как получить дескриптор главного окна, используя:

Код: Выделить всё

var tops = Win32Window.GetProcessWindows();
var winUI3Window = tops.FirstOrDefault(w => w.ClassName == "WinUIDesktopWin32WindowClass");
Однако мне нужен дескриптор определенных элементов пользовательского интерфейса, например, если я хочу поместить видео внутри Frame, Border или ContentView. Мне нужен не весь дескриптор окна, а дескрипторы конкретных элементов пользовательского интерфейса.
Что мне нужно:
  • Получить собственный дескриптор (HWND в Windows) конкретных элементов, таких как Frame, Border и т. д. Эквивалентно HwndHost WPF, но на уровне элемента в MAUI
  • Иметь возможность передать этот дескриптор в Dahua SDK для выполнять рендеринг в определенных элементах управления
Что я пробовал:
  • Пользовательские обработчики/рендереры (но они больше ориентированы на стиль)
  • Код, специфичный для платформы, с #if WINDOWS
  • Window.Current.Handler.PlatformView (возвращает дескриптор окна, а не element)
Конкретный вопрос: как я могу получить дескрипторы отдельных элементов пользовательского интерфейса в .NET MAUI Windows для интеграции с собственными SDK, требующими определенных HWND?

Подробнее здесь: https://stackoverflow.com/questions/797 ... n-net-maui
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»