Поделиться через


SurfaceImageSource Класс

Определение

Предоставляет общие поверхности Microsoft DirectX для рисования и последующего создания битов в содержимое приложения.

/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SurfaceImageSource : ImageSource
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class SurfaceImageSource : ImageSource
Public Class SurfaceImageSource
Inherits ImageSource
Наследование
Object IInspectable DependencyObject ImageSource SurfaceImageSource
Производный
Атрибуты

Комментарии

Этот класс является областью отображения для взаимодействия Microsoft DirectX, в которой содержимое Microsoft DirectX может рисовать в пользовательском интерфейсе, состоящем из XAML. Один из аспектов для SurfaceImageSource заключается в том, что, хотя он может включать содержимое Microsoft DirectX, цикл отрисовки по-прежнему ориентирован на XAML. Слишком много отрисовок Microsoft DirectX в этой модели отрисовки может привести к задержке или снижению скорости отклика. Если вы ожидаете большое количество перерисовок для содержимого Microsoft DirectX и планируете отображать это содержимое в полноэкранном режиме без какого-либо пользовательского интерфейса XAML, скорее всего, следует использовать метод SwapChainBackgroundPanel . Другой альтернативой для содержимого, не в полноэкранном режиме, является отрисовка на отдельной поверхности в фоновом потоке, а затем скопируйте его содержимое на поверхность, возвращенную из BeginDraw в потоке пользовательского интерфейса. Это может разблокировать поток пользовательского интерфейса за счет более высокого использования памяти.

Дополнительные сведения о том, как рисовать в SurfaceImageSource, включая пример кода, см. в статье Взаимодействие с DirectX и XAML.

Этот класс имеет дополнительный API, но эти API предназначены для взаимодействия с Microsoft DirectX и не являются частью общей модели программирования приложений, описанной в этой документации. Например, на стороне Microsoft DirectX можно вызвать BeginDraw.

Производные классы SurfaceImageSource

SurfaceImageSource является родительским классом для VirtualSurfaceImageSource.

Конструкторы

SurfaceImageSource(Int32, Int32)

Инициализирует новый экземпляр класса SurfaceImageSource , задав размер области рисования.

SurfaceImageSource(Int32, Int32, Boolean)

Инициализирует новый экземпляр класса SurfaceImageSource , указывая размер области рисования и указывает, должна ли непрозрачность всегда быть полной. Используйте его с isOpaque=true , если SurfaceImageSource не должен поддерживать прозрачность; это может повысить производительность.

Свойства

Dispatcher

Всегда возвращается null в приложении Windows App SDK. Вместо этого используйте DispatcherQueue .

(Унаследовано от DependencyObject)
DispatcherQueue

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

(Унаследовано от DependencyObject)

Методы

ClearValue(DependencyProperty)

Очищает локальное значение свойства зависимостей.

(Унаследовано от DependencyObject)
GetAnimationBaseValue(DependencyProperty)

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

(Унаследовано от DependencyObject)
GetValue(DependencyProperty)

Возвращает текущее действующее значение свойства зависимостей из DependencyObject.

(Унаследовано от DependencyObject)
ReadLocalValue(DependencyProperty)

Возвращает локальное значение свойства зависимостей, если задано локальное значение.

(Унаследовано от DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Регистрирует функцию уведомления для прослушивания изменений определенной DependencyProperty в этом экземпляре DependencyObject .

(Унаследовано от DependencyObject)
SetValue(DependencyProperty, Object)

Задает локальное значение свойства зависимостей для Объекта DependencyObject.

(Унаследовано от DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Отменяет уведомление об изменениях, которое было ранее зарегистрировано путем вызова метода RegisterPropertyChangedCallback.

(Унаследовано от DependencyObject)

Применяется к

См. также раздел