Обновление представления WPF и D3DImage не работает

У меня есть приложение WPF, в котором у меня есть встроенный движок рендеринга DirectX на бэкэнде и WPF View в качестве внешнего интерфейса. Механизм визуализации DirectX возвращает поверхность WPF, которую я обновляю при каждом вызове рендеринга.

Я связал их через D3DImage, как показано ниже под моим пользовательским контролем:

<Grid>
   <Grid.Background>
       <ImageBrush ImageSource="{Binding D3DRenderImage}" />
   </Grid.Background>
</Grid>

В начале каждого вызова рендеринга я получаю обратный вызов от нативной к управляемой стороне, где я блокирую изображение, и при аналогичном обратном вызове в конце вызова рендеринга я получаю обратный вызов рендеринга, где я делаю недействительным изображение и разблокировать его.

При любой операции манипулирования видом я информирую базовый механизм рендеринга об этом, и он начинает рендеринг последовательности. Все это происходит идеально. Проблема в том, что мое фоновое изображение не обновляется мгновенно. Он обновляется, если я переключаю фокус на какое-то другое окно приложения и возвращаюсь к окну своего приложения.

Вот странная часть. Если я добавлю индикатор выполнения в свой пользовательский элемент управления, представление обновится отлично? Есть идеи о том, что может происходить за кулисами?

PS Я новичок в WPF и, следовательно, не смог правильно сформулировать проблему. Извини за это:-(

0 ответов

Другие вопросы по тегам