Använda det visuella lagret i skrivbordsappar

Du kan nu använda Windows Runtime API:er i program som inte är UWP-skrivbordsprogram för att förbättra utseendet, känslan och funktionerna i dina WPF-, Windows Forms- och C++ Win32-program och dra nytta av de senaste Windows UI-funktionerna som endast är tillgängliga via UWP.

I många scenarier kan du använda XAML-öar för att lägga till moderna XAML-kontroller i din app. Men när du behöver skapa anpassade upplevelser som går utöver de inbyggda kontrollerna kan du komma åt API:erna för visuellt lager.

Det visuella lagret ger ett API med höga prestanda, behållet läge för grafik, effekter och animeringar. Det är grunden för användargränssnittet på Windows enheter. UWP XAML-kontroller bygger på det visuella lagret och möjliggör många aspekter av Fluent Design System, till exempel ljus, djup, rörelse, material och skala.

Kort video som visar ett användargränssnitt som skapats med det visuella lagret.

Användargränssnitt som skapats med det visuella lagret

Skapa ett visuellt engagerande användargränssnitt i alla Windows appar

Med det visuella lagret kan du skapa engagerande upplevelser genom att använda enkel sammansättning av anpassat ritat innehåll (visuella objekt) och använda kraftfulla animeringar, effekter och manipuleringar på objekten i ditt program. Det visuella lagret ersätter inte något befintligt gränssnittsramverk. I stället är det ett värdefullt komplement till dessa ramverk.

Du kan använda det visuella lagret för att ge ditt program ett unikt utseende och en unik känsla och upprätta en identitet som skiljer det från andra program. Det möjliggör också Fluent Design-principer, som är utformade för att göra dina program enklare att använda, vilket drar mer engagemang från användarna. Du kan till exempel använda den för att skapa visuella tips och animerade skärmövergångar som visar relationer mellan objekt på skärmen.

Visuella lagerfunktioner

Borstar

Med kompositionspenslar kan du måla gränssnittsobjekt med solida färger, toningar, bilder, videor, komplexa effekter med mera.

Ett ägg skapat med Material Creator

Ett ägg som skapats med demoappen Material Creator.

Effekter

Kompositionseffekter inkluderar ljus, skugga och en lista över filtereffekter. De kan animeras, anpassas och länkas och sedan tillämpas direkt på visuella objekt. SceneLightingEffect kan kombineras med kompositionsbelysning för att skapa atmosfär, djup och material.

Ljus och material

Ljus och material demonstreras i Windows UI Composition sample gallery.

Animationer

Kompositionsanimeringar körs direkt i compositorprocessen, oberoende av användargränssnittstråden. Detta säkerställer jämnhet och skalning, så att du kan köra ett stort antal samtidiga, explicita animeringar. Förutom välbekanta KeyFrame-animeringar för att skapa egenskapsändringar över tid kan du använda uttryck för att konfigurera matematiska relationer mellan olika egenskaper, inklusive användarindata. Med indatadrivna animeringar kan du skapa användargränssnitt som dynamiskt och smidigt svarar på användarindata, vilket kan leda till högre användarengagemang.

Kort video av ett annat användargränssnitt som skapats med det visuella lagret.

Rörelse demonstreras i exempelgalleriet Windows UI Composition.

Behåll din befintliga kodbas och anta stegvis

Koden i dina befintliga program representerar en betydande investering som du inte vill förlora. Du kan migrera öar med innehåll för att använda det visuella lagret och behålla resten av användargränssnittet i det befintliga ramverket. Det innebär att du kan göra betydande uppdateringar och förbättringar av programgränssnittet utan att behöva göra omfattande ändringar i din befintliga kodbas.

Exempel och självstudier

Lär dig hur du använder det visuella lagret i dina program genom att experimentera med våra exempel. De här exemplen och självstudierna hjälper dig att komma igång med det visuella lagret och visa hur funktioner fungerar.

Win32

Windows Forms

WPF

Limitations

Även om många Visual Layer-funktioner fungerar på samma sätt när de finns i ett skrivbordsprogram som de gör i en UWP-app, har vissa funktioner begränsningar. Här följer några av de begränsningar som du bör känna till:

  • Effektkedjor förlitar sig på Win2D för effektbeskrivningarna. NuGet-paketet Win2D stöds inte i skrivbordsprogram, så du skulle behöva kompilera om det från koden source.
  • För att utföra träfftestning behöver du själv göra gränsberäkningar genom att gå igenom den visuella trädet. Detta är samma som det visuella lagret i UWP, förutom i det här fallet finns det inget XAML-element som du enkelt kan binda till för träfftestning.
  • Det visuella lagret har ingen primitiv för återgivning av text.
  • När två olika användargränssnittstekniker används tillsammans, till exempel WPF och det visuella lagret, är de ansvariga för att rita sina egna bildpunkter på skärmen och de kan inte dela bildpunkter. Det innebär att Visual Layer-innehåll alltid återges ovanpå annat användargränssnittsinnehåll. (Detta kallas airspace-problemet.) Du kan behöva göra extra kodning och testning för att se till att ditt visuella lager ändrar storlek med värdgränssnittet och inte skymmer annat innehåll.
  • Innehåll som finns i ett skrivbordsprogram ändrar inte storlek eller skalas automatiskt för DPI. Extra steg kan krävas för att säkerställa att ditt innehåll hanterar DPI-ändringar. (Mer information finns i plattformsspecifika handledningar.)

Ytterligare resurser

API-referens