D3DImage.IsFrontBufferAvailable Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 |