SurfaceImageSource 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供 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
- 繼承
- 衍生
- 屬性
備註
此類別是 Microsoft DirectX 互通的顯示區,讓 Microsoft DirectX 內容能在原本由 XAML 編寫的 UI 中繪製。 SurfaceImageSource 的一個考量是,雖然它可以整合 Microsoft DirectX 的內容,但渲染週期仍以 XAML 為中心。 在這個渲染模型中,過多的 Microsoft DirectX 繪圖會導致延遲或反應變差。 如果你預期 Microsoft DirectX 內容會有大量重繪,且你打算全螢幕顯示內容,且不使用任何 XAML 介面,建議改用 SwapChainBackgroundPanel 技術。 另一種非全螢幕內容的替代方案是先渲染到背景執行緒的獨立草圖表面,然後將其內容複製到從 UI 執行緒中 BeginDraw 回傳的表面。 這可能會解除 UI 執行緒的阻塞,但代價是記憶體使用量增加。
關於如何繪製到 SurfaceImageSource 的更多資訊,包括範例程式碼,請參見 DirectX 與 XAML 互操作。
此類別有額外的 API,但這些 API 是用於 Microsoft DirectX 互通,並非本文件中其他描述的一般應用程式程式設計模型的一部分。 例如,從 Microsoft DirectX 端,你可以呼叫 BeginDraw。
SurfaceImageSource 衍生類別
SurfaceImageSource 是 VirtualSurfaceImageSource 的父類別。
建構函式
| 名稱 | Description |
|---|---|
| SurfaceImageSource(Int32, Int32, Boolean) |
初始化 SurfaceImageSource 類別的新實例,指定繪圖區域大小,以及不透明度是否預期永遠為全不透明度。 如果 SurfaceImageSource 不應該支援透明度,請使用此 |
| SurfaceImageSource(Int32, Int32) |
初始化一個新的 SurfaceImageSource 類別實例,指定繪圖區域的大小。 |
屬性
| 名稱 | Description |
|---|---|
| Dispatcher |
它總是在 Windows 應用程式 SDK 應用程式中回傳 |
| DispatcherQueue |
得到 |
方法
| 名稱 | Description |
|---|---|
| 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) |