Freigeben über


D3DImage.IsFrontBufferAvailable Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob ein Frontpuffer vorhanden ist.

public:
 property bool IsFrontBufferAvailable { bool get(); };
public bool IsFrontBufferAvailable { get; }
member this.IsFrontBufferAvailable : bool
Public ReadOnly Property IsFrontBufferAvailable As Boolean

Eigenschaftswert

true, wenn ein Frontpuffer vorhanden ist, andernfalls false.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie die IsFrontBufferAvailable -Eigenschaft beim Rendern des Kompositionsziels überprüft wird. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Hosting von Direct3D9-Inhalten in WPF.

void CompositionTarget_Rendering(object sender, EventArgs e)
{
    RenderingEventArgs args = (RenderingEventArgs)e;

    // It's possible for Rendering to call back twice in the same frame 
    // so only render when we haven't already rendered in this frame.
    if (d3dimg.IsFrontBufferAvailable && _lastRender != args.RenderingTime)
    {
        IntPtr pSurface = IntPtr.Zero;
        HRESULT.Check(GetBackBufferNoRef(out pSurface));
        if (pSurface != IntPtr.Zero)
        {
            d3dimg.Lock();
            // Repeatedly calling SetBackBuffer with the same IntPtr is 
            // a no-op. There is no performance penalty.
            d3dimg.SetBackBuffer(D3DResourceType.IDirect3DSurface9, pSurface);
            HRESULT.Check(Render());
            d3dimg.AddDirtyRect(new Int32Rect(0, 0, d3dimg.PixelWidth, d3dimg.PixelHeight));
            d3dimg.Unlock();

            _lastRender = args.RenderingTime;
        }
    }
}

Hinweise

Gelegentlich ist der Frontpuffer nicht verfügbar. Dieser Mangel an Verfügbarkeit kann durch eine Bildschirmsperre, exklusive Direct3D-Anwendungen, Benutzerwechsel oder andere Systemaktivitäten verursacht werden. Wenn dies geschieht, wird Ihre WPF-Anwendung durch die Bearbeitung des IsFrontBufferAvailableChanged-Ereignisses benachrichtigt. Wie Ihre Anwendung reagiert, wenn der vordere Puffer nicht mehr verfügbar ist, hängt davon ab, ob WPF dafür aktiviert ist, auf Software-Rendering zurückzugreifen. Die SetBackBuffer-Methode verfügt über eine Überladung, die einen Parameter verwendet, der angibt, ob WPF auf das Softwarerendering zurückgreift. Weitere Informationen finden Sie in den Hinweisen in der D3DImage-Klasse.

Informationen zur Abhängigkeitseigenschaft

Bezeichnerfeld IsFrontBufferAvailableProperty
Metadateneigenschaften auf true festgelegt Keine

Gilt für:

Weitere Informationen