Share via


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 相互運用の表示領域であり、それ以外の場合は XAML で構成された UI 内で Microsoft DirectX コンテンツを描画できます。 SurfaceImageSource の考慮事項の 1 つは、Microsoft DirectX コンテンツを組み込むことはできますが、レンダリング サイクルは引き続き XAML 中心であるということです。 このレンダリング モデルで描画される Microsoft DirectX の数が多すぎると、待機時間や応答性が低下する可能性があります。 Microsoft DirectX コンテンツに対して多数の再描画が予想され、そのコンテンツを周囲の XAML UI なしで全画面表示する場合は、代わりに SwapChainBackgroundPanel 手法を使用する必要があります。 全画面表示以外のコンテンツのもう 1 つの方法は、バックグラウンド スレッド上の別のスクラッチ サーフェスにレンダリングし、その内容を UI スレッドの BeginDraw から返されたサーフェスにコピーすることです。 これにより、メモリ使用量が増加するコストで UI スレッドのブロックを解除できます。

サンプル コードを含む SurfaceImageSource に描画する方法の詳細については、「 DirectX と XAML 相互運用」を参照してください。

このクラスには追加の API がありますが、これらの API は Microsoft DirectX 相互運用用であり、このドキュメントで説明されている一般的なアプリ プログラミング モデルの一部ではありません。 たとえば、Microsoft DirectX 側から BeginDraw を呼び出すことができます。

SurfaceImageSource 派生クラス

SurfaceImageSource は、 VirtualSurfaceImageSource の親クラスです。

コンストラクター

SurfaceImageSource(Int32, Int32)

描画領域のサイズを指定して、 SurfaceImageSource クラスの新しいインスタンスを初期化します。

SurfaceImageSource(Int32, Int32, Boolean)

描画領域のサイズ、および不透明度が常に完全な不透明度であると予想されるかどうかを指定して、 SurfaceImageSource クラスの新しいインスタンスを初期化します。 SurfaceImageSource が透過性をサポートしない場合は、 と共isOpaque=trueに使用します。これにより、パフォーマンスが向上する可能性があります。

プロパティ

Dispatcher

常に Windows アプリ SDK アプリで を返しますnull。 代わりに DispatcherQueue を使用してください。

(継承元 DependencyObject)
DispatcherQueue

このオブジェクトが DispatcherQueue 関連付けられている を取得します。 は DispatcherQueue 、コードが UI 以外のスレッドによって開始された場合でも、UI スレッド上の にアクセス DependencyObject できる機能を表します。

(継承元 DependencyObject)

メソッド

ClearValue(DependencyProperty)

依存関係プロパティのローカル値をクリアします。

(継承元 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

依存関係プロパティに対して確立された基本値を返します。これは、アニメーションがアクティブでない場合に適用されます。

(継承元 DependencyObject)
GetValue(DependencyProperty)

DependencyObject から依存関係プロパティの現在の有効な値を返します。

(継承元 DependencyObject)
ReadLocalValue(DependencyProperty)

ローカル値が設定されている場合は、依存関係プロパティのローカル値を返します。

(継承元 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

この DependencyObject インスタンスの特定の DependencyProperty に対する変更をリッスンするための通知関数を登録します。

(継承元 DependencyObject)
SetValue(DependencyProperty, Object)

DependencyObject の依存関係プロパティのローカル値を設定します。

(継承元 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback を呼び出して以前に登録した変更通知を取り消します。

(継承元 DependencyObject)

適用対象

こちらもご覧ください