D3DImage Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Felhasználó ImageSource által létrehozott Direct3D-felületet megjelenítő felület.
public ref class D3DImage : System::Windows::Media::ImageSource
public class D3DImage : System.Windows.Media.ImageSource
type D3DImage = class
inherit ImageSource
Public Class D3DImage
Inherits ImageSource
- Öröklődés
Példák
Az alábbi példakód bemutatja, hogyan deklarálhat egy D3DImage XAML-ben. Le kell képeznie a System.Windows.Interop névteret, mert az nem szerepel az alapértelmezett XAML-névterekben. További információ: Útmutató: Direct3D9-tartalom üzemeltetése a WPF.
<Window x:Class="D3DHost.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="clr-namespace:System.Windows.Interop;assembly=PresentationCore"
Title="MainWindow" Height="300" Width="300" Background="PaleGoldenrod">
<Grid>
<Image x:Name="imgelt">
<Image.Source>
<i:D3DImage x:Name="d3dimg" />
</Image.Source>
</Image>
</Grid>
</Window>
Megjegyzések
A D3DImage osztály használatával Direct3D-tartalmakat tárolhat egy Windows megjelenítési alaprendszer (WPF) alkalmazásban.
Hívja meg a metódust a Lock Direct3D-tartalom módosításához.D3DImage A metódus meghívása SetBackBuffer Direct3D-felület hozzárendeléséhez.D3DImage Hívja meg a metódust a AddDirtyRect Direct3D felület frissítéseinek nyomon követéséhez. Hívja meg a metódust a Unlock módosított területek megjelenítéséhez.
A D3DImage osztály két megjelenítési puffert kezel, amelyek az háttér-puffer és az előlap-puffer. Ez a hátsó puffer az Ön Direct3D felülete. A háttérpuffer módosításait a rendszer a Unlock metódus meghívásakor az első pufferbe másolja, ahol az megjelenik a hardveren. Időnként az első puffer elérhetetlenné válik. A rendelkezésre állás hiányát okozhatja a képernyőzárolás, a teljes képernyős exkluzív Direct3D-alkalmazások, a felhasználóváltás vagy más rendszertevékenységek. Ha ez történik, a WPF-alkalmazás értesítést kap a IsFrontBufferAvailableChanged esemény kezelésével. Az, hogy az alkalmazás hogyan reagál az első puffer elérhetetlenné válására, attól függ, hogy a WPF engedélyezve van-e a szoftveres renderelésre való visszalépéshez. A SetBackBuffer metódus túlterheléssel rendelkezik, amely egy paramétert használ, amely meghatározza, hogy a WPF visszaesik-e a szoftveres renderelésre.
Válasz egy nem elérhető előtérpufferre, ha WPF nem esik vissza a szoftveres renderelésre
Amikor a SetBackBuffer(D3DResourceType, IntPtr) túlterhelést hívja meg, vagy a SetBackBuffer(D3DResourceType, IntPtr, Boolean) túlterhelést a enableSoftwareFallback paraméter falseértékre állítja, a renderelő rendszer a háttérpufferre mutató hivatkozást bocsátja ki, amikor az első puffer elérhetetlenné válik, és semmi sem jelenik meg. Ha az első puffer ismét elérhető, a renderelő rendszer a IsFrontBufferAvailableChanged eseményt aktiválja, amely értesíti a WPF-alkalmazást. Létrehozhat egy eseménykezelőt a IsFrontBufferAvailableChanged eseményhez, hogy újrainduljon a renderelés egy érvényes Direct3D-felülettel. A renderelés újraindításához meg kell hívnia SetBackBuffer.
Válasz egy nem elérhető előtérpufferre, ha WPF visszaesik a szoftveres renderelésre
Amikor a SetBackBuffer(D3DResourceType, IntPtr, Boolean) túlterhelést a enableSoftwareFallback paraméter trueértékre állítja, a renderelő rendszer megőrzi a háttérpufferre mutató hivatkozását, amikor az első puffer elérhetetlenné válik, így nem kell meghívni SetBackBuffer, ha az első puffer ismét elérhető. Előfordulhat, hogy a felhasználó eszköze elérhetetlenné válik. Ha ez történik, hívja meg SetBackBuffer, hogy engedje fel WPF hivatkozását a háttérpufferre. Ha alaphelyzetbe kell állítania az eszközt, hívja meg a SetBackBuffer parancsot a backBuffer paramétert null-re állítva, majd hívja meg ismét a SetBackBuffer-at, és állítsa a backBuffer-et egy érvényes Direct3D felületre.
Note
A teljesítmény nagyban függ a Direct3D felület beállításaitól. További információkért lásd: A Direct3D9 és a WPF interoperabilitási teljesítményszempontjai.
Note
A D3DImage osztály nem jelenít meg Direct3D-tartalmat, ha WPF szoftverben, például Távoli asztal kapcsolaton keresztül jeleníti meg, kivéve, ha meghívja SetBackBuffer(D3DResourceType, IntPtr, Boolean), és nem adja meg a true paraméterhez tartozó enableSoftwareFallback.
Konstruktorok
| Name | Description |
|---|---|
| D3DImage() |
Inicializálja a D3DImage osztály új példányát. |
| D3DImage(Double, Double) |
Inicializálja az osztály új példányát D3DImage a megadott megjelenítési felbontással. |
Mezők
| Name | Description |
|---|---|
| IsFrontBufferAvailableProperty |
Azonosítja a IsFrontBufferAvailable függőségi tulajdonságot. |
Tulajdonságok
| Name | Description |
|---|---|
| CanFreeze |
Olyan értéket kap, amely jelzi, hogy az objektum módosítható-e. (Öröklődés forrása Freezable) |
| DependencyObjectType |
Lekéri a DependencyObjectType példány CLR-típusát körbefuttatót. (Öröklődés forrása DependencyObject) |
| Dispatcher |
Lekérdezi, Dispatcher hogy ez a társítva van-e DispatcherObject . (Öröklődés forrása DispatcherObject) |
| HasAnimatedProperties |
Olyan értéket kap, amely jelzi, hogy egy vagy több AnimationClock objektum társítva van-e az objektum függőségi tulajdonságainak bármelyikéhez. (Öröklődés forrása Animatable) |
| Height |
Lekéri a magasságot a D3DImage. |
| IsFrontBufferAvailable |
Beolvas egy értéket, amely jelzi, hogy létezik-e előtérpuffer. |
| IsFrozen |
Olyan értéket kap, amely jelzi, hogy az objektum jelenleg módosítható-e. (Öröklődés forrása Freezable) |
| IsSealed |
Olyan értéket kap, amely jelzi, hogy a példány jelenleg zárolva van-e (írásvédett). (Öröklődés forrása DependencyObject) |
| Metadata |
Lekéri a képforráshoz társított metaadatokat. |
| PixelHeight |
A képpontok magasságát D3DImageadja meg. |
| PixelWidth |
A képpontok szélességét D3DImageadja meg. |
| Width |
Lekéri a szélességét.D3DImage |
Metódusok
| Name | Description |
|---|---|
| AddDirtyRect(Int32Rect) |
A módosított háttérpuffer területét adja meg. |
| ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Alkalmazza AnimationClock a megadott DependencyProperty. Ha a tulajdonság már animálva van, a rendszer a megadott HandoffBehavior értéket használja. (Öröklődés forrása Animatable) |
| ApplyAnimationClock(DependencyProperty, AnimationClock) |
Alkalmazza AnimationClock a megadott DependencyProperty. Ha a tulajdonság már animálva van, a rendszer az SnapshotAndReplace átadási viselkedést használja. (Öröklődés forrása Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Animációt alkalmaz a megadottra DependencyProperty. Az animáció a következő képkocka megjelenítésekor indul el. Ha a megadott tulajdonság már animálva van, a rendszer a megadott HandoffBehavior tulajdonságot használja. (Öröklődés forrása Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline) |
Animációt alkalmaz a megadottra DependencyProperty. Az animáció a következő képkocka megjelenítésekor indul el. Ha a megadott tulajdonság már animálva van, a rendszer az SnapshotAndReplace átadási viselkedést használja. (Öröklődés forrása Animatable) |
| CheckAccess() |
Meghatározza, hogy a hívó szál hozzáfér-e ehhez DispatcherObject. (Öröklődés forrása DispatcherObject) |
| ClearValue(DependencyProperty) |
Törli egy tulajdonság helyi értékét. A törölni kívánt tulajdonságot egy DependencyProperty azonosító határozza meg. (Öröklődés forrása DependencyObject) |
| ClearValue(DependencyPropertyKey) |
Törli egy írásvédett tulajdonság helyi értékét. A törölni kívánt tulajdonságot egy DependencyPropertyKey. (Öröklődés forrása DependencyObject) |
| Clone() |
Módosítható klónt hoz létre az D3DImage objektumról, amely részletes másolatokat készít az objektum értékeiről. A függőségi tulajdonságok másolása során ez a metódus erőforrás-hivatkozásokat és adatkötéseket másol (amelyek már nem oldhatók fel), de az animációkat és az aktuális értékeket nem. |
| CloneCore(Freezable) |
A példányt a megadott Freezable klónként (mélymásolatként) hozza létre alap (nem animált) tulajdonságértékek használatával. |
| CloneCurrentValue() |
Módosítható klónt hoz létre az D3DImage objektumról, amely részletes másolatokat készít az objektum aktuális értékeiről. Az erőforráshivatkozások, adatkötések és animációk nem lesznek másolva, de az aktuális értékeket a program másolja. |
| CloneCurrentValueCore(Freezable) |
A példányt módosítható klónként (mély másolatként) adja meg a megadott Freezable értékekkel. |
| CoerceValue(DependencyProperty) |
A megadott függőségi tulajdonság értékét kényszeríti. Ez úgy érhető el, hogy meghívja a függőségi tulajdonság tulajdonság metaadataiban megadott függvényeket CoerceValueCallback a hívás DependencyObjectsorán. (Öröklődés forrása DependencyObject) |
| CopyBackBuffer() |
Létrehozza a szoftver másolatát a D3DImage. |
| CreateInstance() |
Inicializálja a Freezable osztály új példányát. (Öröklődés forrása Freezable) |
| CreateInstanceCore() |
Ha egy származtatott osztályban implementálják, a származtatott osztály új példányát D3DImage hozza létre. |
| Equals(Object) |
Meghatározza, hogy a megadott DependencyObject érték megegyezik-e az aktuális DependencyObjectértékével. (Öröklődés forrása DependencyObject) |
| Finalize() |
Felszabadítja az erőforrásokat, és egyéb tisztítási műveleteket hajt végre, mielőtt a D3DImage szemétgyűjtés visszanyeri azt. |
| Freeze() |
Az aktuális objektum nem módosítható, és a tulajdonságát a következőre IsFrozenállítja |
| FreezeCore(Boolean) |
A nem módosíthatóvá teszi a D3DImage elemet, vagy meghatározza, hogy módosítható-e. |
| GetAnimationBaseValue(DependencyProperty) |
A megadott DependencyPropertyérték nem animált értékét adja vissza. (Öröklődés forrása Animatable) |
| GetAsFrozen() |
Az alaptulajdonságok Freezable(nem animált) értékeinek egy fagyasztott másolatát hozza létre. Mivel a másolat le van fagyasztva, a program hivatkozással másolja a befagyott alobjektumokat. (Öröklődés forrása Freezable) |
| GetAsFrozenCore(Freezable) |
A példányt a megadott Freezable , alapszintű (nem animált) tulajdonságértékekkel zárolt klónává teszi. |
| GetCurrentValueAsFrozen() |
Az aktuális tulajdonságértékek fagyasztott másolatát Freezable hozza létre. Mivel a másolat le van fagyasztva, a program hivatkozással másolja a befagyott alobjektumokat. (Öröklődés forrása Freezable) |
| GetCurrentValueAsFrozenCore(Freezable) |
Az aktuális példányt a megadott Freezablezárolt klónává teszi. Ha az objektum animált függőségi tulajdonságokkal rendelkezik, a program átmásolja az aktuális animált értékeket. |
| GetHashCode() |
Ehhez lekéri a DependencyObjectkivonatkódot. (Öröklődés forrása DependencyObject) |
| GetLocalValueEnumerator() |
Létrehoz egy speciális enumerátort annak meghatározásához, hogy mely függőségi tulajdonságok rendelkeznek helyileg beállított értékekkel.DependencyObject (Öröklődés forrása DependencyObject) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| GetValue(DependencyProperty) |
Egy függőségi tulajdonság aktuális tényleges értékét adja vissza az adott példányon DependencyObject. (Öröklődés forrása DependencyObject) |
| InvalidateProperty(DependencyProperty) |
Újra kiértékeli a megadott függőségi tulajdonság tényleges értékét. (Öröklődés forrása DependencyObject) |
| Lock() |
Zárolja a D3DImage háttérpuffert, és engedélyezi a műveleteket. |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| OnChanged() |
Az aktuális Freezable objektum módosításakor hívható meg. (Öröklődés forrása Freezable) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Ez a tag támogatja a Windows megjelenítési alaprendszer (WPF) infrastruktúrát, és nem közvetlenül a kódból való használatra szolgál. (Öröklődés forrása Freezable) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Biztosítja, hogy a megfelelő környezeti mutatók létre legyenek hozva az DependencyObjectType éppen beállított adattagok számára. (Öröklődés forrása Freezable) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Felülbírálja a DependencyObject változó típusú függőségi tulajdonságra válaszul a kezelők meghívásának OnPropertyChanged(DependencyPropertyChangedEventArgs)Changedvégrehajtását Freezable is. (Öröklődés forrása Freezable) |
| ReadLocalValue(DependencyProperty) |
Egy függőségi tulajdonság helyi értékét adja vissza, ha létezik. (Öröklődés forrása DependencyObject) |
| ReadPreamble() |
Biztosítja, hogy a Freezable rendszer érvényes szálról legyen elérhető. A metódus öröklőinek Freezable minden olyan API elején meg kell hívniuk ezt a metódust, amely olyan adattagokat olvas be, amelyek nem függőségi tulajdonságok. (Öröklődés forrása Freezable) |
| SetBackBuffer(D3DResourceType, IntPtr, Boolean) |
Direct3D-felületet rendel hozzá a háttérpuffer forrásaként. |
| SetBackBuffer(D3DResourceType, IntPtr) |
Direct3D-felületet rendel hozzá a háttérpuffer forrásaként. |
| SetCurrentValue(DependencyProperty, Object) |
Beállítja egy függőségi tulajdonság értékét az értékforrás módosítása nélkül. (Öröklődés forrása DependencyObject) |
| SetValue(DependencyProperty, Object) |
Beállítja egy függőségi tulajdonság helyi értékét, amelyet a függőségi tulajdonság azonosítója határoz meg. (Öröklődés forrása DependencyObject) |
| SetValue(DependencyPropertyKey, Object) |
Beállítja egy írásvédett függőség tulajdonság helyi értékét, amelyet a DependencyPropertyKey függőségi tulajdonság azonosítója határoz meg. (Öröklődés forrása DependencyObject) |
| ShouldSerializeProperty(DependencyProperty) |
Olyan értéket ad vissza, amely jelzi, hogy a szerializálási folyamatok szerializálják-e a megadott függőségi tulajdonság értékét. (Öröklődés forrása DependencyObject) |
| ToString() |
Az objektum sztring-ábrázolását hozza létre az aktuális kultúra alapján. (Öröklődés forrása ImageSource) |
| ToString(IFormatProvider) |
Sztringképet hoz létre az objektumról az IFormatProvider átadott fájl alapján. Ha a szolgáltató az |
| TryLock(Duration) |
Megpróbálja zárolni a D3DImage megadott időtartamot, és várakozik. |
| Unlock() |
A zárolások számának megcétlése a D3DImage. |
| VerifyAccess() |
Kényszeríti, hogy a hívószál hozzáférhessen ehhez.DispatcherObject (Öröklődés forrása DispatcherObject) |
| WritePostscript() |
Elindítja az Changed eseményt, Freezable és meghívja annak metódusát OnChanged() . A származtatott Freezable osztályoknak ezt a metódust minden olyan API végén kell meghívni, amely módosítja a nem függőségi tulajdonságokként tárolt osztálytagokat. (Öröklődés forrása Freezable) |
| WritePreamble() |
Ellenőrzi, hogy a Freezable rendszer nem zárolta-e a elemet, és hogy az érvényes szálkezelési környezetből van-e elérhető. Freezable Az öröklőknek ezt a metódust minden olyan API elején kell meghívni, amely nem függőségi tulajdonságokat tartalmazó adattagoknak ír. (Öröklődés forrása Freezable) |
esemény
| Name | Description |
|---|---|
| Changed |
Akkor fordul elő, ha a Freezable benne lévő objektum vagy objektum módosul. (Öröklődés forrása Freezable) |
| IsFrontBufferAvailableChanged |
A tulajdonság megváltozásakor IsFrontBufferAvailable fordul elő. |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Formázza az aktuális példány értékét a megadott formátummal. (Öröklődés forrása ImageSource) |