lukeer Ответов: 2

Получить дескриптор элемента управления в XAML


Привет форум,

существует программное обеспечение, написанное в Windows Forms, которое соединяет выходные данные графика фильтра DirectShow с панелью.
hr = videoWin.put_Owner( videoPanel.Handle );

Как я могу получить это справляться прямоугольника XAML, MediaElement, Border или ContentControl?
И какой элемент управления будет использоваться для отображения видео?

Что я уже пробовал:

Я размышлял и размышлял.

2 Ответов

Рейтинг:
12

Pete O'Hanlon

Получение ручки требует немного хитрости источника презентации. Ваш код будет выглядеть примерно так:

HwndSource hwnd = PresentationSource.FromVisual(theControl) as HwndSource;
if (hwnd != null)
{
  handle = hwnd.Handle;
}


Рейтинг:
1

Sandeep Mewara

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

Взгляните на это:
Воспроизведение видео - полный учебник по WPF[^]
События Класса MediaElement (Для Windows.Пользовательского интерфейса.Язык XAML.Управления) - для Windows UWP и приложения | Microsoft документы[^]

Пример:

<Window x:Class="WpfTutorialSamples.Audio_and_Video.MediaPlayerVideoSample"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="MediaPlayerVideoSample" Height="300" Width="300">
    <Grid>
        <MediaElement Source="http://hubblesource.stsci.edu/sources/video/clips/details/images/hst_1.mpg" />
    </Grid>
</Window>


lukeer

На самом деле мне нужно отображать живое видео с USB-камеры, а не из файла. Что я должен был бы установить Метод MediaElement.Источник параметр для захвата с моей камеры?

Sandeep Mewara

Использовать:
https://github.com/Sascha-L/WPF-MediaKit

Еще пример:
https://www.codeproject.com/Articles/285964/WPF-Webcam-Control